【发布时间】:2018-06-14 19:32:14
【问题描述】:
考虑这个例子:
library(dplyr)
library(sf)
library(tmap)
d <- data_frame(one = c(1,1,2,1,1,1,1),
two = c(1,1,2,1,1,1,1))
std <- st_as_sf(d, coords = c('one', 'two'))
std %>% tm_shape() + tm_bubbles(alpha = 0.3)
您可以看到(1, 1) 的点较暗,因为它在数据中出现了 6 次。因此,感谢alpha 混合,这些点加起来了。
我的问题是我无法将数据集存储为它。我所拥有的只是一个聚合版本,比如
d_agg <- d %>% group_by(one, two) %>%
summarize(count = n()) %>%
ungroup()
# A tibble: 2 x 3
one two count
<dbl> <dbl> <int>
1 1 1 6
2 2 2 1
如何使用d_agg 和相应的count 变量重现与以前完全相同的图表?
当然,重新创建上面的初始数据框是不可行的解决方案,因为我的点太多(而且有些点重复了太多次)
只是使用:
std_agg %>% tm_shape() + tm_bubbles(col = 'count', alpha = 0.3)
没用
【问题讨论】:
-
请同时添加您在代码中使用的包
-
您可以使用
reprows n 次重新创建原始数据框吗? -
不,那太大了。这就是问题所在。
-
我在想也许你可以用
grey100分配count == 1然后根据count减去100以创建更深的颜色`例如color <- ifelse(count == 1, "grey100", paste0("grey", (100 - count + 1))) -
我对@987654338@ 包的了解不够多,无法给出完整的答案。我在想,必须可以逐行获取 agg 数据,展开然后绘制到变量(列表)中,然后继续附加以下行。最后绘制该列表。这样我们只会扩展每个组的数据,而不是一次扩展所有组。