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

R: Stacked bar chart from two column data

我正在尝试根据包含两列的数据框中的数据创建堆积条形图。数据格式示例如下:

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),然后绘制每一天的计数作为堆积条形图。

我可以通过分别计算每天的条目数,然后将结果放入格式正确的新数据框中,使用标准堆叠条形图命令进行绘制来实现。但这是一种低效的方法。我无法在搜索中找到更优雅的方法,但我相信一定存在。

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

您可以在此处使用基数 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)

这会产生

您可能希望更改颜色以适合您的口味。