如何解决地图ggplot中的两种比例颜色 完成要求替代
我正在ggplot
上绘制地图,并想查看两个堆栈溢出的 几个 帖子后,我想绘制两个不同的scale_fill_gradient
达到预期的结果。
从shapefile
的数据帧中,我将spain
的图读入两列,其中每一行仅在一个区域中被通知,而在两个区域中都没有。关键是要用两个scale_fill_gradient
来表示同一图中的两个概念。
这是我的实际图片代码:
df %>%
ggplot(aes(x=long,y= lat,group = group)) +
geom_polygon(aes_string(color= "ratio_quan"),size = 0.2)+
scale_color_gradient(low ="yellow",high ="blue",na.value="white")+
geom_polygon(aes_string(fill= "ratio_qua"),size = 0.2)+
scale_fill_gradient(low ="pink",high ="red",na.value="blank")
据我所知,只能提供一个填充选项,因此我使用了scale_color_gradient
和scale_fill_gradient
,但是在一种比例尺中存在边界差异,而在另一种比例尺中则填充了另一种比例尺我要完成的任务如下:
如您所知,在这种情况下,两个概念都由多边形中的颜色填充。
解决方法
解决方案1
完成要求
@艾伦·卡梅隆(Allan Cameron)
此问题已由ggnewscale
解决,该问题先前已在堆栈溢出时在很多线程中得到解决,并以其他方式解决。
通过使用功能ggnewscale
导入库new_scale_fill()
,可以轻松地应用新的比例尺颜色。
library(ggnewscale)
df %>%
ggplot(aes(x=long,y= lat,group = group)) +
geom_polygon(aes_string(fill= "ratio_quan"),size = 0.2)+
scale_fill_gradient(low ="yellow",high ="blue",na.value="white")+
new_scale_fill() +
geom_polygon(aes_string(fill= "ratio_qua"),size = 0.2)+
scale_fill_gradient(low ="pink",high ="red",na.value="blank")
解决方案2
替代
这种经典方法是使用grid.arrange
排列的图,花哨的花样较少,但可能更易于解释。
p1 <- df %>%
ggplot(aes(x=long,na.value="white")
p2 <- df %>%
ggplot(aes(x=long,group = group)) +
geom_polygon(aes_string(fill= "ratio_qua"),na.value="white")
grid.arrange(p1,p2,nrow = 1)
结果,在同一图上使用了两个具有孤立比例的图。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。