R 如何在ggplot2(2.2.0版)中的绘图中获得一致的透明度(alpha)

R 如何在ggplot2(2.2.0版)中的绘图中获得一致的透明度(alpha),r,ggplot2,R,Ggplot2,例如 现在考虑: > tmp_df group x y alpha 1 1 1 1 0.10 2 2 1 2 0.10 3 1 2 3 0.10 4 2 2 4 0.75 5 1 3 5 0.10 6 2 3 6 1.00 > tmp_df2 group x y alpha 1 1 1 1 0.1 2 2 1 2 0.1 3 1 2 3 0.1 4 2 2 4 0.1

例如

现在考虑:

> tmp_df
  group x y alpha
1     1 1 1  0.10
2     2 1 2  0.10
3     1 2 3  0.10
4     2 2 4  0.75
5     1 3 5  0.10
6     2 3 6  1.00

> tmp_df2
  group x y alpha
1     1 1 1   0.1
2     2 1 2   0.1
3     1 2 3   0.1
4     2 2 4   0.1
5     1 3 5   0.1
6     2 3 6   0.1
这将生成以下绘图(p1位于左侧,p2位于右侧):


我们看到,尽管在分面图中呈现α水平一致(特别是0.1水平)没有问题,但在数据中绘制两个α水平不同的图似乎会导致不一致的结果。也就是说,右边的条纹比预期的要暗得多。我如何解决这个问题?

事实证明,这与我之前的问题密切相关,答案是根据此答案指定比例限制:

具体而言,将限制传递给两个绘图可以解决问题:

gridExtra::grid.arrange(p1, p2, ncol = 2)
p1
gridExtra::grid.arrange(p1, p2, ncol = 2)
p1 <- ggplot(tmp_df, aes(x, y, alpha = alpha)) +
    geom_bar(stat = 'identity') +
    scale_alpha(limits = c(0, 1)) +
    facet_grid(group ~ .)

p2 <- ggplot(tmp_df2, aes(x, y, alpha = alpha)) +
    geom_bar(stat = 'identity') +
    scale_alpha(limits = c(0, 1)) +
    facet_grid(group ~ .)