r语言ggplot2绘制直方图

#想请问一下,多个变量的直方图怎么添加图例呢,试了好多方法都不行

a2 <- ggplot(data = tem) + 
  geom_histogram(aes(x=PM1_p_glu2, y = ..density..),colour="gray",fill = "#66ccff",
                 alpha = 0.2,binwidth = 1.5) + 
  geom_density(aes(x=PM1_p_glu2, y = ..density..), col = "#FF99FF",size=0.6)+
  geom_histogram(aes(x=PM2.5_p_glu2, y = ..density..),colour="gray",fill = "#66FFcc",
                 alpha = 0.2,binwidth = 1.5) + 
  geom_density(aes(x=PM2.5_p_glu2, y = ..density..), col = "pink",size=0.6)+
  theme_bw()+labs(x="pregnancy to postpartum",y=" ")+
  theme( axis.text=element_text(size=10),
        axis.title.x=element_text(size=10),
        axis.title.y=element_text(size=10))+
 theme(panel.grid = element_blank())

【以下回答由 GPT 生成】

问题标题: r语言ggplot2绘制多个变量的直方图时如何添加图例?

问题内容: 通过分析你提供的代码示例,我发现你已经为每个直方图和密度图都设置了不同的颜色和填充。要为这些图添加图例,你可以使用scale_fill_manual()scale_color_manual()函数来手动指定颜色和填充,并为每个变量创建对应的图例标签。

下面是一种可能的解决方案:

a2 <- ggplot(data = tem) +
  geom_histogram(aes(x = PM1_p_glu2, y = ..density.., fill = "PM1_p_glu2"),
                 colour = "gray", alpha = 0.2, binwidth = 1.5) +
  geom_density(aes(x = PM1_p_glu2, y = ..density.., color = "PM1_p_glu2"),
               size = 0.6) +
  geom_histogram(aes(x = PM2.5_p_glu2, y = ..density.., fill = "PM2.5_p_glu2"),
                 colour = "gray", alpha = 0.2, binwidth = 1.5) +
  geom_density(aes(x = PM2.5_p_glu2, y = ..density.., color = "PM2.5_p_glu2"),
               size = 0.6) +
  theme_bw() +
  labs(x = "pregnancy to postpartum", y = "") +
  theme(axis.text = element_text(size = 10),
        axis.title.x = element_text(size = 10),
        axis.title.y = element_text(size = 10)) +
  theme(panel.grid = element_blank()) +
  scale_fill_manual(values = c("#66ccff", "#66FFcc")) +
  scale_color_manual(values = c("#FF99FF", "pink")) +
  guides(fill = guide_legend(title = "Variable"), 
         color = guide_legend(title = "Variable"))

在这个解决方案中,我们为每个直方图和密度图的fillcolor参数添加了一个类别标签,例如fill = "PM1_p_glu2"color = "PM1_p_glu2"。然后,我们使用scale_fill_manual()scale_color_manual()函数手动指定颜色,values参数包含了每个变量的颜色值。最后,使用guides()函数为图例指定标题。

请注意,这只是一种解决问题的方法,你可以根据你的需求进行调整和修改。

希望对你有帮助!如果你还有其他问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^