R:ggplot2图例在更改配色方案时消失
受《邮报》的启发,我尝试使用罗宾逊投影绘制世界地图,并在地图上添加彩色点。 重新投影地图和点效果很好,但是,由于某些原因我不明白,我无法更改点的颜色方案并保留图例。我尝试了以下方法: 首先,我在这里得到了形状文件:和 我得到以下警告R:ggplot2图例在更改配色方案时消失,r,ggplot2,map-projections,R,Ggplot2,Map Projections,受《邮报》的启发,我尝试使用罗宾逊投影绘制世界地图,并在地图上添加彩色点。 重新投影地图和点效果很好,但是,由于某些原因我不明白,我无法更改点的颜色方案并保留图例。我尝试了以下方法: 首先,我在这里得到了形状文件:和 我得到以下警告删除了5行包含缺失值(geom_点)。和一个空绘图 当我像这样改变色阶时: ggplot(bbox_robin_df, aes(long,lat)) + geom_polygon(data = wmap_df_robin, aes(long,lat, group
删除了5行包含缺失值(geom_点)。
和一个空绘图
当我像这样改变色阶时:
ggplot(bbox_robin_df, aes(long,lat)) +
geom_polygon(data = wmap_df_robin, aes(long,lat, group = group, fill = hole)) +
geom_point(data = site_locs_robin_df, aes(x, y, colour = ocean), colour = col_pal) +
scale_colour_manual(values = col_pal) +
coord_equal() +
geom_polygon(linetype = 'solid', fill = NA, colour = 'black', size = 0.5) +
scale_fill_manual(values=c("grey80", "white"), guide="none")
颜色很好(如col_pal中所述),但我失去了传奇。
有什么办法解决这个问题吗?还是其他方法
实际上,我也有更多的点,其中一些重叠,我想确定它们的绘制顺序(例如,位于IND顶部)。如何执行此操作?问题在于
piratepal()
返回一个命名的颜色向量,而scale\u color\u manual()
将名称解释为分频:
> piratepal('espresso', length.out = 5)
blue yellow red green orange
"#2366C0FF" "#E9D738FF" "#B91226FF" "#A3DA4BFF" "#FF6435FF"
由于数据中不存在这些断点,因此将删除这些点
解决方案是取消命名颜色:
col_pal <- unname(piratepal('espresso', length.out = 5))
ggplot(bbox_robin_df, aes(long,lat)) +
geom_polygon(data = wmap_df_robin, aes(long,lat, group = group, fill = hole)) +
geom_point(data = site_locs_robin_df, aes(x, y, colour = ocean)) +
scale_colour_manual(values = col_pal) +
coord_equal() +
geom_polygon(linetype = 'solid', fill = NA, colour = 'black', size = 0.5) +
scale_fill_manual(values=c("grey80", "white"), guide="none")
col\u-pal您需要使用scale\u-color\u手册(values=col\u-pal)
更改调色板,而不更改代码中的任何其他内容。@ClausWilke谢谢,但我已经尝试过了,但得到了警告“删除了5行缺少的值(几何点))“这将导致一个空的绘图,任何人都有机会了解发生了什么,您必须提供您编写的不起作用的代码以及您的shapefile。例如,您可以将它们作为要点上传@克劳斯威尔克:对不起,我编辑了这个问题。谢谢你的帮助我解决了色阶问题。点顺序应该作为一个单独的问题提出,我建议你把它归结为一个问题
> piratepal('espresso', length.out = 5)
blue yellow red green orange
"#2366C0FF" "#E9D738FF" "#B91226FF" "#A3DA4BFF" "#FF6435FF"
col_pal <- unname(piratepal('espresso', length.out = 5))
ggplot(bbox_robin_df, aes(long,lat)) +
geom_polygon(data = wmap_df_robin, aes(long,lat, group = group, fill = hole)) +
geom_point(data = site_locs_robin_df, aes(x, y, colour = ocean)) +
scale_colour_manual(values = col_pal) +
coord_equal() +
geom_polygon(linetype = 'solid', fill = NA, colour = 'black', size = 0.5) +
scale_fill_manual(values=c("grey80", "white"), guide="none")