繁体   English   中英

如何在没有数据框的情况下在 ggplot2 中创建直方图?

[英]How to create histogram plot in ggplot2 without data frame?

我正在使用以下代码在 R 中绘制两个直方图。

x1<-rnorm(100)
x2<-rnorm(50)  
h1<-hist(x1)
h2<-hist(x2)
plot(h1, col=rgb(0,0,1,.25), xlim=c(-4,4), ylim=c(0,0.6), main="", xlab="Index", ylab="Percent",freq = FALSE)
plot(h2, col=rgb(1,0,0,.25), xlim=c(-4,4), ylim=c(0,0.6), main="", xlab="Index", ylab="Percent",freq = FALSE,add=TRUE)
legend("topright", c("H1", "H2"), fill=c(rgb(0,0,1,.25),rgb(1,0,0,.25)))

该代码产生以下输出。 在此处输入图片说明

我需要上图的视觉上好看(或风格)的版本。 我想使用 ggplot2。 我正在寻找这样的东西(请参阅更改填充颜色部分) 但是,我认为 ggplot2 仅适用于数据框。 在这种情况下我没有数据框。 因此,如何在 ggplot2 中创建好看的直方图? 请告诉我。 提前致谢。

你可以(也应该)把你的数据变成data.frame ,如果你想使用ggplot 理想情况下ggplotdata.frame应该是长格式。 这是一个简单的例子:

df1 = rbind(data.frame(grp='x1', x=x1), data.frame(grp='x2', x=x2))

ggplot(df1, aes(x, fill=grp)) + 
  geom_histogram(color='black', alpha=0.5)

有很多选项可以改变你喜欢的外观。 如果您希望将直方图堆叠或分组,或显示为百分比与计数,或密度等,您会在前面的问题中找到许多资源,这些资源展示了如何实现每个选项。

在此处输入图片说明

暂无
暂无

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

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