R:来自两列数据的堆积条形图

时间:2015-01-26 19:58:37

标签: r bar-chart stacked-chart

我尝试根据数据框中包含两列的数据创建堆积条形图。下面是数据格式的一个例子:

Date    Speed  
01/01/2013  56  
01/01/2013  45  
01/01/2013  34  
02/01/2013  23  
02/01/2013  12  
02/01/2013  1  
03/01/2013  48 

对于每一天,我需要计算属于每个类别的条目数(由限制定义,例如0-40,41-48,49-60,> 60),然后将每天的计数绘制为堆积条形图。

我可以通过分别计算每一天的条目数,并将结果放入正确格式的新数据框来使用标准堆积条形图命令进行绘制。但这是一种效率低下的方法。我没有能够在搜索中找到更优雅的方法,但我相信一个必须存在。

我只想使用标准软件包来执行此操作,因为我无法在我可用的系统上安装新软件包。

1 个答案:

答案 0 :(得分:1)

您可以在此处使用基地barplot。这是一个例子

dd<-read.table(text="Date Speed
01/01/2013 56
01/01/2013 45
01/01/2013 34
02/01/2013 23
02/01/2013 12
02/01/2013 1
03/01/2013 48", header=T)

#make sure it's a date    
speed_date <- as.Date(dd$Date, "%m/%d/%Y")

#cut data into requested bins
speed_cut <- cut(dd$Speed, 
    breaks=c(0,40,48,60,Inf),
    labels=c("0-40", "41-48", "49-60", "> 60")
)

#pick a color for each bin
speed_cols <- heat.colors(nlevels(speed_cut))

barplot(table(speed_cut, speed_date), col=speed_cols)
legend("topright",levels(speed_cut), fill=speed_cols)

这会产生

enter image description here

您可能希望根据自己的口味更改颜色。