【问题标题】:ggplot2 apply alpha parameter to continuous fill scale legend to match mapggplot2 将 alpha 参数应用于连续填充比例图例以匹配地图
【发布时间】:2020-04-10 17:42:00
【问题描述】:

我正在尝试制作一张覆盖在路线图上的地图。为了使路线图可见,我应用了一个非美学的 alpha 参数。执行此操作时,连续填充比例图例不会应用相同的 alpha 级别。我想要的是对图例应用与地图中所做的相同的 alpha。如何解决这个问题?

library(tigris)
library(ggplot2)
library(sf)

options(tigris_class = "sf")

texas <- counties(48)

texas$fill <- rnorm(254, 50, 20)

ggplot(texas) + 
  geom_sf(aes(fill = fill, alpha = .5), color = "light grey") +
  scale_fill_distiller(palette = "Spectral") 

此解决方案应用了 alpha,但它删除了图例的渐变。

ggplot(texas) + 
  geom_sf(aes(fill = fill, alpha = .5), color = "light grey") +
  scale_fill_distiller(palette = "Spectral") +
  guides(fill = guide_legend(override.aes = list(alpha = 0.5)), alpha = FALSE)

【问题讨论】:

    标签: r ggplot2 sf


    【解决方案1】:

    我最终找到了一种方法来实现我正在寻找的东西,方法是使用RColorBrewer 包手动设置填充比例,以获取我正在使用的调色板的颜色信息和scale_fill_gradientn

     ggplot(texas) + 
      geom_sf(aes(fill = fill, alpha = .5), color = "light grey") +
      scale_fill_gradientn(colors = alpha(c(brewer.pal(11, "Spectral")), alpha = .5))
    

    【讨论】:

    • 添加rev 将反转颜色以匹配原始颜色。 scale_fill_gradientn(colors = alpha(rev(brewer.pal(11, "Spectral")), alpha = .5))
    【解决方案2】:

    guides可以用来修改图例。同时添加 alpha = FALSE 将从图中删除 alpha 图例。

    p + guides(fill = guide_legend(override.aes = list(alpha = 0.5))) 
    

    【讨论】:

    • 嗨!欢迎来到 SO ;) 也许你可以提供一些关于你的答案意味着什么的描述;)
    • 这只是部分有效。它确实应用了 alpha,但你失去了图例的渐变。请参阅已编辑的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 2018-01-26
    相关资源
    最近更新 更多