如何使用ggplot2创建黑白透明重叠直方图?

7

我使用ggplot2创建了两个透明的重叠直方图。

test = data.frame(condition = rep(c("a", "b"), each = 500), value = rep(-1, 1000))
test[1:500,]$value = rnorm(500)
test[501:1000,]$value = rnorm(500) + 2

fig = ggplot(test, aes(x = value, fill = condition)) +
      #scale_fill_grey() +
      geom_histogram(position = "identity", alpha = .5)
fig

生成的图表看起来很好,但是它是彩色的。我需要一个灰度或黑白图。

使用 "scale_fill_grey()" 会产生透明度很高、很难"读取"的图表。

理想情况下,我希望有一个使用纹理而不是颜色的黑白图表,例如,一个条件使用交叉线:"///",另一个条件使用反斜线:"\\\",两个条件重叠时会出现 "XXX" 的结果。这可行吗?


据我所知,ggplot2不支持纹理。 - Arun
可以在使用hist()或truehist()函数(从MASS库中)时使用纹理处理吗? - user2363777
1个回答

14

这个呢(还没有贴图)?

fig = ggplot(test, aes(x = value, fill = condition)) +
    geom_histogram(position = "identity", alpha = .8) + 
    scale_fill_manual(values=c("grey20", "grey60")) + theme_bw()
fig

在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接