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()
调用中,就像我向您展示的代码一样,您的图例将出现。