Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何获取ggplot2直方图中的图例?_R_Histogram_Legend - Fatal编程技术网

R 如何获取ggplot2直方图中的图例?

R 如何获取ggplot2直方图中的图例?,r,histogram,legend,R,Histogram,Legend,我真的很想把图例放到柱状图上。我不知道这里发生了什么 ggplot(data=Male, aes(Male$Naval.Girth)) + geom_histogram(aes(y =..density..), breaks=seq(63, 123, by = 3), col="black", fill="black", alpha=.7) + labs(title="M

我真的很想把图例放到柱状图上。我不知道这里发生了什么

ggplot(data=Male, aes(Male$Naval.Girth)) + 
   geom_histogram(aes(y =..density..), 
             breaks=seq(63, 123, by = 3), 
             col="black", 
             fill="black", 
             alpha=.7) +
   labs(title="Male Naval Girth Measurements", 
             x= "Girth (cm)", y="Density") +
   geom_vline(aes(xintercept=mean(Male$Naval.Girth, na.rm=T)), show.legend = TRUE, 
             color="red", linetype="dashed", size=1.2) +
   stat_function(fun=dnorm,
           color="red",
           size = 0.7,
           args=list(mean=mean(Male$Naval.Girth), 
           sd=sd(Male$Naval.Girth)))

谢谢。

ggplot
默认情况下,大多数绘图类型都假定
show.legend=NA
,除非通过
theme()
函数或
show.legend=FALSE
另有规定

show.legend=NA
时,是默认值
ggplot
包括任何图例,如果映射了任何美学

要获得
ggplot
以自动添加图例,您只需将
col
fill
映射到您的美学。也就是说,您可以将
fill
col
包装在
aes()下。以下代码未添加图例:

ggplot(data=Male, aes(Male$Naval.Girth)) + 
   geom_histogram(aes(y =..density..), 
             breaks=seq(63, 123, by = 3), 
             col="black", 
             fill="black", 
             alpha=.7)
但这一个确实如此,请注意这里的美学映射:

ggplot(data=Male, aes(Male$Naval.Girth)) + 
       geom_histogram(aes(y =..density.., fill=Naval.Girth), 
                 breaks=seq(63, 123, by = 3), 
                 col="black", 
                 alpha=.7)

同样,如果你想要一个图例,只需将填充参数的颜色放在
aes()
wrapper下。

如果你能提供一个包含示例数据的示例,那会很有帮助。没关系,我不太熟悉如何在这个网站上提供信息。我仍在学习R,不幸的是,我没有时间去想如何实现你的建议(尽可能简单),无论如何,谢谢。这是今晚要交的作业,重要的是我们如何解释数据,所以我就不谈了。@n你有没有尝试过我发布的解决方案?你需要进一步的帮助吗?我不确定我是否缺少任何相关的软件包,但我仍然无法让它工作。加载的包是mosaic、readr和summarytools。我知道这是一个直方图,所以没什么大不了的。但我需要为不同的情节找出答案。我要再玩一次。谢谢。只要加载了
ggplot 2
库,就不需要软件包,因为这本质上是
ggplot
功能。我们的想法是将
fill
col
移动到
aes()
调用中,就像我向您展示的代码一样,您的图例将出现。