使用 tm_bubbles() 从 R 中的 tmap 包创建饼图

Creating piecharts with tm_bubbles() from tmap package in R

我想使用 tm_bubbles() 或更一般地使用 R 中的 tmap 包创建一个饼图。 这是我目前的代码:

library(tmap)
library(spData)
us_states_map = tm_shape(st_transform(us_states,2163)) + tm_polygons() + 
  tm_layout(frame = FALSE)
us_states_map + tm_shape(gbs.sf) +
  tm_bubbles(size=c("uninfected",super.haps),labels=c("uninfected",super.haps),
             col=c("gray",brewer.pal(3,"Accent")),style="cat",
             alpha=0.7,scale=2) + 
  tm_legend(legend.position=c("right","bottom"))

这将创建以下 plot,它将每个变量放入不同的子图中,而不是按比例将其绘制到每个位置的同一个气泡中(如饼图中所示)。

我希望只有一个图,每个气泡按比例代表所有 4 种颜色。

PS:gbs.sf 是一个数据矩阵,其中包含每个气泡的位置、总人口(此处为气泡面积)及其组成部分(“未感染”、“melissa”等)作为数字。

请查看 tm_symbols 帮助页面中的第三个示例,它就是这样做的。您需要创建一个 ggplot2 饼图列表作为 grobs,并指定 tm_symbolsshapes 参数。