我有两个数据集的叠加密度图,用ggplot2创建。
g <- ggplot(data = result_A,
aes(x = log(cap_universal))) +
geom_density(fill = "lightblue") +
geom_density(data = result_B,
fill = "purple",
alpha = 0.25) +
xlab("Complete Automation Probability") +
ylab("Density")
然而,我尝试了很多方法,但仍然无法在这个情节中添加传说。没有错误消息,但传说只是赢了。
非常感谢您的帮助。
答案 0 :(得分:0)
将您的数据集result_A
和result_B
合并到一个数据集中,其中这些差异的内容被指定为某个因素,例如: &#34;东西&#34;:
result_A$thing <- "A"
result_B$thing <- "B"
result_AB <- rbind(result_A, result_B)
然后,不是通过单独调用geom_density
来调用两个数据集,而是使用fill = thing
指定一次并手动指定颜色和字母,例如:
ggplot(data = result_AB, aes(x = log(cap_universal))) +
geom_density(aes(fill = thing,
alpha = thing)) +
scale_fill_manual(values = c("light blue", "purple")) +
scale_alpha_manual(values = c(1, 0.25)) +
# assuming here that the "result_A" data will plot first as "A" should
# order before "B" in factors, though can't test w/out yr data
xlab("Complete Automation Probability") +
ylab("Density")
这应该会产生一个图例,显示你的因素是什么颜色&#34; A&#34;和&#34; B&#34;是的,我认为是你所追求的。
这更符合ggplot2
的哲学。但是,如果您在fill
内包含aes
个来电,也可能会有效,例如geom_density(aes(fill = "lightblue"))
。 (虽然不可能对此进行测试,因为上面没有一个可重现的例子)