如何在一个 GGPlot 中绘制不同变量的两个直方图,并带有图例和颜色

Abi*_*ail 5 r ggplot2

这是我在 Stack Overflow 上的第一篇文章,也是我的第一个可重现的示例,而且我是 R 新手,所以请保持温柔!我正在尝试在一个图上显示两个直方图。每个直方图都是我的数据框中的不同变量(列)。我不知道如何在条形图中着色并显示图例。如果我使用scale_fill_manual,颜色将被忽略,但如果我使用scale_colour_manual,颜色只是条形的轮廓。如果我将颜色分别映射到每个直方图(并且根本不使用scale_xxx_manual),则颜色效果很好,但我没有得到图例。

这是我的代码:

TwoHistos <- ggplot (cars) +
  labs(color="Variable name",x="XX",y="Count")+
  geom_histogram(aes(x=speed, color= "Speed"),  alpha = 0.2 ) + 
  geom_histogram(aes(x=dist, color= "Dist"), alpha = 0.2) + 
  scale_colour_manual(values = c("yellow","green"))
TwoHistos

Run Code Online (Sandbox Code Playgroud)

这是我在图像中的结果(我粘贴了它,但我不知道为什么它没有显示。抱歉!): 两个带有颜色轮廓的直方图

Elk*_*Elk 1

认为fill(如果我理解正确的话),您可能想要的是在通话中进行争论geom_histogram()

(我在这里使用了mtcars内置的 R 数据,因为您没有提供任何可供使用的数据)

TwoHistos <- ggplot (mtcars) +
  labs(fill="Variable name",x="XX",y="Count")+
  geom_histogram(aes(x=hp, fill= "Speed",  color = "yellow"), alpha = 0.2 ) + 
  geom_histogram(aes(x=disp, fill= "Dist", color = "green"), alpha = 0.2) +
  scale_fill_manual(values = c("yellow","green"))+
  scale_colour_manual(values = c("yellow","green"), guide=FALSE)
TwoHistos
Run Code Online (Sandbox Code Playgroud)

编辑:只是为了真正清楚地表明我已经更改了x因此geom_histogram()它可以与mtcars 在此输入图像描述