我有两张ggplot2::geom_pologon号的,里面装满了半透明的 colored颜色 . 我希望用相同的Alpha显示密钥,但它不是. 该解决方案将理想地zoom ,以便当我添加具有相同填充和Alpha colored颜色 的其他多边形时,匹配保持不变.

示例代码:

chosen_alpha = 0.2
ggplot() +
    theme_minimal() +
    geom_polygon(
        aes(
            fill = "A",
            x = c(1, 2, 2),
            y = c(1, 1, 2)
        ),
        alpha = chosen_alpha
    ) +
    geom_polygon(
        aes(
            fill = "A",
            x = c(3, 4, 4),
            y = c(3, 3, 4)
        ),
        alpha = chosen_alpha
    ) +
    guides(
        fill = guide_legend(
            override.aes = list(
                alpha = chosen_alpha
            ),
        )
    )

如果我只有一个多边形,这是可行的,如下所示.

chosen_alpha = 0.2
ggplot() +
    theme_minimal() +
    geom_polygon(
        aes(
            fill = "A",
            x = c(1, 2, 2),
            y = c(1, 1, 2)
        ),
        alpha = chosen_alpha
    ) +
    guides(
        fill = guide_legend(
            override.aes = list(
                alpha = chosen_alpha
            ),
        )
    )

推荐答案

问题是,每geom个图形就会绘制一个关键的字形,也就是说,你最终会得到多层略透明的长方形,这些长方形被一层接一层地绘制,因此添加的几何图形越多,你最终得到的 colored颜色 就越深.

解决问题的最干净的方法是只使用一个geom_polygon来绘制您的多边形.为此,将您的数据放在一个data.Frame中,并通过groupAES说明不同的面.

library(ggplot2)

chosen_alpha <- 0.2

dat <- data.frame(
  x = c(c(1, 2, 2), c(2, 3, 3)),
  y = c(c(1, 1, 2), c(2, 2, 3)),
  fill = "A",
  group = rep(1:2, each = 3)
)
ggplot(dat) +
  theme_minimal() +
  geom_polygon(
    aes(
      fill = fill,
      x = x,
      y = y,
      group = group
    ),
    alpha = chosen_alpha
  )

第二种 Select 是将key_glyph设置为"blank",只有一个geom除外.这样,关键字形只绘制一次:

ggplot() +
  theme_minimal() +
  geom_polygon(
    aes(
      fill = "A",
      x = c(1, 2, 2),
      y = c(1, 1, 2)
    ),
    alpha = chosen_alpha,
    key_glyph = "blank"
  ) +
  geom_polygon(
    aes(
      fill = "A",
      x = c(2, 3, 3),
      y = c(2, 2, 3)
    ),
    alpha = chosen_alpha
  )

R相关问答推荐

IQR()和stats之间四分位距计算的差异::分位数()在R和' ggpubr '

用单个表达匹配多个替代模式

跨列应用多个摘要函数:summerise_all:列表对象无法强制为double类型'

从R中的另一个包扩展S3类的正确方法是什么

保存包含循环和ifelse的函数的输出

通过使用str_detect对具有相似字符串的组进行分组

如何使用按钮切换轨迹?

在另一个函数中调用ggplot2美学

将嵌套列表子集化为嵌套列表

计算具有奇数日期的运行金额

多个模拟序列间的一种预测回归关系

比较理论阿尔法和经验阿尔法

根据列表中项目的名称合并数据框和列表

扩展R中包含列表的数据框

创建在文本字符串中发现两个不同关键字的实例的数据框

如何在条形图中的x和填充变量中包含多个响应变量?

我正在try 创建一个接近cos(X)的值的While循环,以便它在-或+1-E10范围内

每行不同列上的行求和

在一个multiplot中以非对称的方式在R中绘制多个图

在R中,有没有什么方法可以根据一列中的多个值来过滤行?