【发布时间】:2019-12-12 19:09:01
【问题描述】:
我刚刚开始使用 ggplot2 并创建了一个地图,上面覆盖了由连续彩色地图表示的数据。数据从 0.205 到 0.756。但是,我想用“n”个离散颜色绘制数据,中点为 0.5。
我已将代码的相关部分修改为以下内容:
...
df %>% # dataframe
mutate(value_cut = cut_interval(value, n = 6)) %>%
ggplot() -> gg
gg <- gg + geom_polygon(aes(x = long, y = lat, group = group,
fill = value_cut), size = 0.25, color = NA)
gg <- gg + viridis::scale_fill_viridis(discrete = TRUE,direction=-1)
...
print(gg)
几乎就在那里,但我希望能够指定“偶数”个唯一颜色并将中点设置为 0.5。我尝试了许多不同的方法,但通常都会出错。
任何帮助表示赞赏。
【问题讨论】:
-
如果您想完全控制用于离散化数据的间隔,您可能希望使用基础 R 中的
cut函数;见rdocumentation.org/packages/base/versions/3.6.2/topics/cut。 -
谢谢,这可以通过设置breaks=c(0.2,0.35,0.5,0.65,0.8) 来实现,从而产生4 种离散颜色。更多的中断会增加颜色的数量。现在我需要做的就是设置自己的颜色 - 有什么建议吗?
-
是的,看看 ColorBrewer (colorbrewer2.org),然后使用
scale_fill_manual应用您选择的矢量。 -
我试过:gg
-
我认为您需要控制填充颜色的
scale_fill_manual,而不是控制边框颜色的scale_colour_manual。