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)
这会产生
您可能希望更改颜色以适合您的口味。
我正在尝试根据包含两列的数据框中的数据创建堆积条形图。数据格式示例如下:
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)
这会产生
您可能希望更改颜色以适合您的口味。