在R中使用ggplot2一次绘制多个直方图

在R中使用ggplot2一次绘制多个直方图,r,histogram,R,Histogram,我对R和ggplot2相当陌生,在同一个直方图中绘制多个变量时遇到一些问题 我的数据已分组,只需打印即可。数据是按周计算的,我需要绘制每个类别(A、B、C和D)的编号 我希望日期作为x轴,计数根据通用y轴绘制为不同的颜色。 我一次只能画一个类别,但找不到像我这样的例子 这是我用来画一个类别的。我非常确定我需要使用position=“dodge”来绘制多个,因为我不希望它被堆叠 ggplot(df, aes(x=Date, y=A)) + geom_histogram(stat="identity

我对R和ggplot2相当陌生,在同一个直方图中绘制多个变量时遇到一些问题

我的数据已分组,只需打印即可。数据是按周计算的,我需要绘制每个类别(A、B、C和D)的编号

我希望日期作为x轴,计数根据通用y轴绘制为不同的颜色。 我一次只能画一个类别,但找不到像我这样的例子

这是我用来画一个类别的。我非常确定我需要使用
position=“dodge”
来绘制多个,因为我不希望它被堆叠

ggplot(df, aes(x=Date, y=A)) + geom_histogram(stat="identity") + 
labs(title = "Number in Category A") +
ylab("Number") + 
xlab("Date") +
theme(axis.text.x = element_text(angle = 90))
另外,这给了我一个柱状图,在条之间有空格。有什么办法可以去掉这个吗?我尝试了
spaces=0
,就像您在绘制条形图时所做的那样,但似乎不起作用

我以前读过一些与我类似的问题,但数据的格式不同,我无法调整它以适应我的数据。 这是我看到的一些帮助:

我也不太确定箱子的宽度是多少。我认为数据应该如何间隔或分组,这不适用于我的问题,因为它已经分组了。如果我错了,请告诉我

任何帮助都将不胜感激。
提前谢谢

你不是在绘制直方图,你只是在绘制一个看起来有点像直方图的条形图。我个人认为这是刻面的一个很好的例子:

library(ggplot2)
library(reshape2) # for melt()
melt_df <- melt(df)
head(melt_df) # so you can see it

ggplot(melt_df, aes(Date,value,fill=Date)) + 
 geom_bar() + 
 facet_wrap(~ variable)

图例给出的是日期值,而不是类别。我尝试将
fill=Date
更改为类似
fill=names(df)[-1]
的内容,认为这会有所帮助,但我遇到了一个美学错误,因此它没有绘制任何内容。有没有办法解决这个问题?如果你使用刻面,颜色会参考日期,因为每个刻面代表变量。哦,对了,这是真的。我应该意识到这一点。非常感谢你的帮助。另外,为了消除打印时的警告,我添加了
stat=“identity”
,因为我的数据已经汇总。您的上一个带有线条的图形很漂亮,但我有一个小问题:是否可以为每条线条添加点作为x轴@brandonbertelsenta中的参考值查看文档:另请参见。我试着用alpha覆盖直方图,但密度图对我来说是最清晰的,因为我只想给出单个图上不同分布的想法。
library(ggplot2)
library(reshape2) # for melt()
melt_df <- melt(df)
head(melt_df) # so you can see it

ggplot(melt_df, aes(Date,value,fill=Date)) + 
 geom_bar() + 
 facet_wrap(~ variable)
ggplot(melt_df,aes(Date,value,group=variable,color=variable)) + geom_line()