我喜欢使用平铺密度图来表示概率密度。我经常使用第二个(y)维度来说明因子之间密度的比较,但是我在引入第三个维度时遇到了麻烦。我想用颜色来表示第三个维度。我怎样才能做到这一点? (我已尝试在下面的示例中插入aes
Type
引用,但它们似乎与..density..
美学相冲突。)
从下图开始,
library(ggplot2)
dz <- data.frame(Type = c(rep("A", 100), rep("B", 100)),
Costs = c(rnorm(100), rnorm(100, 5, 1))
)
ggplot(dz, aes(x = Costs, y = 1)) +
stat_density(aes(fill = ..density..), geom = "tile", position = "identity") +
scale_fill_gradient(low = "white", high = "black")
我想要的是以下各项的组合。对于A
:
和B
:
答案 0 :(得分:4)
如果您将fill
映射到Type
,将alpha
映射到密度,则会得到或多或少的所需内容:
ggplot(dz, aes(x = Costs, y = 1, fill=Type)) +
stat_density(aes(alpha=..density..), geom = "tile", position = "identity") +
scale_fill_manual(values=c("red", "blue"))