繁体   English   中英

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

[英]How to plot two histograms of different variables in one GGPlot, with legend and colours

这是我在 Stack Overflow 上的第一篇文章,我的第一个可重现的示例,而且我是 R 的新手,所以请保持温和。 我试图在一个 plot 上显示两个直方图。 在我的 dataframe 中,每个直方图都是一个不同的变量(列)。 我不知道如何在条形图中同时着色并显示图例,如果我使用 scale_fill_manual ,颜色将被忽略。 但如果我使用 scale_colour_manual 颜色只是条的轮廓。 如果我 map 分别为每个直方图的颜色(并且根本不使用 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

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

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

(我在这里使用了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

编辑:只是为了明确说明我已经更改了geom_histogram()中的x ,因此它适用于mtcars 在此处输入图像描述

使用fill而不是color并使用scale_fill_manual

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

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM