R 如何在没有数据框的ggplot2中创建柱状图?

R 如何在没有数据框的ggplot2中创建柱状图?,r,ggplot2,R,Ggplot2,我使用下面的代码在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,

我使用下面的代码在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)))
x1如果要使用
ggplot
,您可以(也应该)将数据放入
data.frame
中。理想情况下,对于
ggplot
data.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)
有很多选择可以改变你喜欢的外观。如果您希望将直方图堆叠或分组,或显示为百分比与计数,或显示为密度等,您将在前面的问题中找到许多资源,展示如何实现这些选项


是的,ggplot在数据帧上工作。你有什么理由不能用这些数据制作一个数据框呢?以防万一@camille问题的修辞性质在你身上消失了。您可以也应该从数据中创建data.frame。@dww:请给我举个例子。@BeautifulMind-对不起,我没有意识到这一步会是一个挑战。添加了一个答案来说明如何操作。