E.g。
tmp_df <-
expand.grid(group = 1:2, x = 1:3)
tmp_df$y <- 1:6
tmp_df$alpha <- c(0.1, 0.1, 0.1, 0.75, 0.1, 1)
p1 <- ggplot(tmp_df, aes(x, y, alpha = alpha)) +
geom_bar(stat = 'identity') +
facet_grid(group ~ .)
tmp_df2 <- tmp_df
tmp_df2$alpha <- 0.1
p2 <- ggplot(tmp_df2, aes(x, y, alpha = alpha)) +
geom_bar(stat = 'identity') +
facet_grid(group ~ .)
那样:
> 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
现在考虑:
gridExtra::grid.arrange(p1, p2, ncol = 2)
产生以下图(p1在左边,p2在右边):
我们看到虽然ggplot
在分面图中呈现alpha级别(特别是0.1级)没有问题,但是在数据中制作两个具有不同alpha
级别的图表似乎会导致结果不一致。即右手栏比预期的要暗很多。我该如何解决这个问题?
答案 0 :(得分:0)
事实证明这与我之前的问题密切相关,答案是根据这个答案指定比例限制:
https://stackoverflow.com/a/43250030/2109289
具体来说,对两个图表传递限制可以解决问题:
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 ~ .)