0

我想在 tmaps 中添加两个国家/地区标签及其各自的数据。我知道 tm_text 允许我添加这样的标签(我知道输出看起来很糟糕,但只是为了说明):

data("World")

tm_shape(World)+
  tm_borders()+ 
  tm_fill("HPI",
          palette = "Blues")+
  tm_text("pop_est")

我希望每个标签都是这样的:“国家名称”“:”“变量”。我尝试使用 paste0:


tm_shape(World)+
  tm_borders()+ 
  tm_fill("HPI",
          palette = "Blues")+
  tm_text(paste0("pop_est", ":", "HPI"))

Error: Incorrect data variable used for the text

有人知道该怎么做吗?提前致谢!

4

1 回答 1

1

您收到错误是因为 tm_text 需要字符输入(然后在幕后用作列名)。问题是 paste() 或 paste0() 的结果是一个字符串本身,但它不是现有的列。

解决方案是生成所需文本的新列并将其用作 tm_text 的输入。

library(tmap)

World$text <- paste0(World$pop_est, ":", World$HPI)
tm_shape(World)+
  tm_borders()+ 
  tm_fill("HPI",
          palette = "Blues")+
  tm_text("text")

正如你所说,输出很丑,因此我不会包括它。

于 2021-07-02T21:31:08.297 回答