gpt4 book ai didi

r - 未指定美学时使用 geom_sf 绘制图例

转载 作者:行者123 更新时间:2023-12-04 10:55:11 24 4
gpt4 key购买 nike

当使用 ggplot/geom_sf 绘制 map 时,任何映射到美学的图层都会在图例中表示。我也知道使用 show.legend = ... 可用于强制图例表示和操纵所使用的符号系统(点、线、多边形)。然而,当绘制简单对象而不需要进一步将它们映射到美学时,即使用颜色/填充来显示附加信息时,没有给出图例条目。这似乎也是使用 show.legend = TRUE 时的情况。我在 GitHub 上发现了这个问题:https://github.com/tidyverse/ggplot2/issues/3636 .我不太确定,问的人是否理解正确,但似乎没有一个好的答案。所以,使用他的代码:

library(ggplot2)
library(sf)

nc <- st_read(system.file("shape/nc.shp", package = "sf"))
ggplot(nc) + geom_sf(show.legend = TRUE)

无法生成图例。我希望图例简单地显示一条与 map 中颜色相同的线,并为该层命名。我可以使用此解决方法添加图例:

ggplot() +
geom_sf(aes(fill = "US State borders"), nc, show.legend = "line")

但是,这现在改变了绘图层的颜色。好的,让我们尝试指定一种颜色:

ggplot() +
geom_sf(aes(fill = "US State borders"), nc, fill = "grey", show.legend = "line")

糟糕,图例又丢了,可能是因为我现在指定了两次 fill。这真的不可能使用 ggplot/geom_sf 吗?

最佳答案

如果我正确理解问题,如果您在 scale_fill_manual() 中指定填充颜色,它应该可以工作:

  ggplot() +
geom_sf(aes(fill = "US State borders"), nc, show.legend = "line") +
scale_fill_manual(values = 'grey') +
labs(fill = '') # removing legend title

关于r - 未指定美学时使用 geom_sf 绘制图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59249385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com