r - R 中的堆积条形图,每天多行

标签 r charts plot data-visualization bar-chart

我想将一天中完成的工作显示为堆叠条形图,以便日复一日地查看我在每个类别中完成的事件量,Y 轴表示从 0:00 到 23 的时间: 59.

#   day             tstart   tend   duration category
1   2012-10-01      13:40    14:16  36       Recreation
2   2012-10-02      10:15    10:57  42       Work
3   2012-10-02      13:23    13:47  24       Chores
4   2012-10-02      13:47    14:48  61       Work
5   2012-10-03      09:09    11:40  151      Work
6   2012-10-03      13:33    14:04  31       Recreation
7   2012-10-03      17:00    19:40  160      Recreation

我知道我必须将“时间开始”转换为数字,但我不知道如何“合并”同一天的多行,以便它们只构成情节中的一个条。

在(非常原始的)ASCII 艺术中,我期待的是这样的:
23:00
22:00
21:00
20:00
19:00                C
18:00                C
17:00                C
16:00
15:00
14:00          W     R
13:00    R     C
12:00
11:00                W
10:00          W     W
 9:00                W
 8:00
 7:00
 6:00
 5:00
 4:00
 3:00
 2:00
 1:00
 0:00
        01    02    03

(其中 R、W 和 C 将是不同事件的不同颜色的条:娱乐、工作和家务)

事实上,作为 R 绘图的新手,我不知道我必须查看的绘图函数(和绘图包),而且因为它们将是绘图中的漏洞 - 之间没有记录(例如)事件0:00 和 09:09,然后在 2012-10-03 的 11:40 和 13:33 之间等等...

最佳答案

这是 ggplot2 的快速解决方案:

d <- read.table(textConnection("
day             tstart   tend   duration category
2012-10-01      13:40    14:16  36       Recreation
2012-10-02      10:15    10:57  42       Work
2012-10-02      13:23    13:47  24       Chores
2012-10-02      13:47    14:48  61       Work
2012-10-03      09:09    11:40  151      Work
2012-10-03      13:33    14:04  31       Recreation
2012-10-03      17:00    19:40  160      Recreation"), header=TRUE)

d$day <- as.Date(d$day)
d$tstart <- as.POSIXct(d$tstart, format="%H:%M")
d$tend <- as.POSIXct(d$tend, format="%H:%M")

library(ggplot2)
library(scales)
g <- ggplot(data=d, aes()) + geom_segment(aes(x=day,xend=day,y=tstart,yend=tend,color=category),size=20) + scale_x_date(labels = date_format("%d")) 
g + scale_y_datetime(limits=c(as.POSIXct("00:00", format="%H:%M"),as.POSIXct("23:59", format="%H:%M")), labels = date_format("%H:%M"))

这使 :

enter image description here

编辑:初始答案中的 y 轴是错误的。

关于r - R 中的堆积条形图,每天多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14747244/

相关文章:

r - 如何使用 R 计算项集的频率?

带有组合图表的 iOS Swift Chart

python - 在 Matplotlib 中校正轨迹

r - 使用 ggplot2、R 在圆形图上绘制因子的非重叠水平

r - 表函数不适用于具有日期类的日期 - R

c++ - C/C++ 中是否有与 GNU-R which() 等效的函数?

r - 使用 dygraph 显示第二个 Y 轴

javascript - Highcharts - 向上钻取事件以将显示的信息切换回来

jquery - JQPlot stacked bar 每个堆叠标签计数而不是累加(增量)计数

r - 在 R 中增量绘图而不是重置