【问题标题】:R: Stacked bar chart from two column dataR:来自两列数据的堆积条形图
【发布时间】:2015-01-26 19:58:36
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: r bar-chart stacked-chart


    【解决方案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)
    

    这会产生

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

    【讨论】:

    • 完美。非常感谢。 R 继续让我惊讶于它使这些任务变得如此简单......当然,一旦你知道如何去做!
    猜你喜欢
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    相关资源
    最近更新 更多