【问题标题】:add commas to colorbar legend in geom_sf (R ggplot)在 geom_sf (R ggplot) 中为颜色条图例添加逗号
【发布时间】:2018-09-19 20:05:46
【问题描述】:

我正在使用 ggplot 和 geom_sf 制作地图,我想在图例中的值中添加逗号。我发现编辑颜色条的唯一方法是通过“指南”,但+ guides(fill = guide_colorbar(labels="comma")) 似乎没有做任何事情(可能是因为“标签”不是“指南”中包含的规范?)我如何获得一个相同的图例,其中包含超过 1,000 个数字的逗号?

获取所有数据的代码有点长,所以我希望有人知道没有代表的答案,但如果需要我可以编辑它。谢谢!

landingsmap <- ggplot() + 
  scale_x_continuous(limits=c(-126, -116), expand=c(0,0)) + 
  scale_y_continuous(limits=c(32, 42), expand=c(0,0)) + 
  geom_sf(data=simpleblocks, aes(colour=number_fish, fill=number_fish)) + 
  scale_colour_gradient(low="lightcoral", high="darkred", name="Number of Fish") + 
  scale_fill_gradient(low="lightcoral", high="darkred", name="Number of Fish") +
  geom_sf(data=camap, colour="black") + 
  theme(
    panel.background = element_rect(fill="skyblue4", size=0.5, linetype="solid"),
    legend.position = c(0.78, 0.5)
    ) + 
  NULL
landingsmap 

【问题讨论】:

  • 是的,reprex 确实总是更好......地图并不重要。这个问题并不真正需要您的大部分代码。问题是将逗号放入您的图例中。您还可以基于任何具有连续变量的数据框创建示例,例如 diamondsiris... 只是一个建议。
  • stackoverflow.com/a/15007117/7941188 可能会有所帮助。这个想法是在scale_gradient 调用中指定labels = comma,但@AndS。刚刚弹出的答案似乎很棒

标签: r ggplot2 sf


【解决方案1】:

试试这个。我将使用 sf 包中的示例。

library(sf)
#> Linking to GEOS 3.6.1, GDAL 2.1.3, proj.4 4.9.3
library(ggplot2)
fname <-  system.file("shape/nc.shp", package = "sf")
nc <-  read_sf(fname)

ggplot(nc)+
  geom_sf(aes(fill = BIR79))+
  scale_fill_continuous(labels=function(x) format(x, big.mark = ",", scientific = FALSE))

reprex package (v0.2.0) 于 2018 年 9 月 19 日创建。

所以,对于你的例子,你会写:

scale_fill_gradient(low="lightcoral", high="darkred", name="Number of Fish", labels=function(x) format(x, big.mark = ",", scientific = FALSE))

【讨论】:

    【解决方案2】:

    尝试使用 scales::comma,如下所示:

    scale_fill_gradient(label = scales::comma)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 2021-10-29
      • 2015-07-04
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 2019-06-21
      相关资源
      最近更新 更多