繁体   English   中英

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

[英]Plot multiple histograms in one using ggplot2 in R

我对R和ggplot2相当新,并且在同一直方图中绘制多个变量时遇到一些麻烦。

我的数据已经分组,只需要绘制。 数据是按周计算的,我需要绘制每个类别(A,B,C和D)的数字。

Date          A    B    C    D
01-01-2011    11   0    11   1
08-01-2011    12   0    3    3
15-01-2011    9    0    2    6

我想将日期作为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 ,但它似乎没有用。

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

使用R中的multhist创建包含多个数据系列的直方图

http://www.cookbook-r.com/Graphs/Plotting_distributions_%28ggplot2%29/

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

任何帮助,将不胜感激。 提前致谢!

你真的没有绘制直方图,你只是绘制一个看起来像直方图的条形图。 我个人认为这是一个很好的理由:

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() 

在此输入图像描述

暂无
暂无

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

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