【问题标题】:Plotting a timeseries in R as stacked bar将 R 中的时间序列绘制为堆积条形图
【发布时间】:2014-03-28 15:33:04
【问题描述】:

我有一个如下所示的数据集

|主题 |行动 |持续时间 | |---------|--------|----------| | 1 |一个 | 39,57 | | 1 |乙| 1,48 | | 1 |乙| 53,22 | | 1 |一个 | 10,42 | | 1 | C | 8,33 | | 1 | D | 1,00 | | 1 | E | 7,50 | | 1 | D | 0,35 | | 2 | D | 1,35 | | 2 |乙| 2,60 | | 2 | C | 1,47 | | 2 | D | 1,13 | | 2 |一个 | 4,23 | | 2 |一个 | 1,62 | | 2 |一个 | 7,58 | | 2 | C | 133,47 | | 2 | D | 14,82 | | 3 | D | 0,45 | | 3 | D | 1,07 | | 3 |一个 | 61,62 | | 3 | D | 42,45 | | 3 | D | 4,47 | | 3 |乙| 100,92 | | 3 | E | 9,05 | | 3 | C | 9,55 |

这表示 3 个对象在一定时间内执行动作(同时开始)。例如,受试者 1 执行动作 A 39.57 分钟,然后执行动作 B 1.48 分钟,然后再次执行动作 B 53.22 分钟(尽管属于同一类别,但区分后续动作很重要)。

我想绘制如下图所示的数据

每个水平条代表某个主题的所有动作,条的长度代表持续时间,颜色代表动作的类型(A、B、C等)。

对此有什么帮助吗?谢谢

【问题讨论】:

  • 您提到“条形组件的长度代表持续时间”,但您也想要 x 轴上的时间.. 这怎么可能?

标签: r time-series data-visualization


【解决方案1】:

试试这个:

library(ggplot2)
ggplot(DF, aes(SUBJECT, DURATION, fill = ACTION)) + 
  geom_bar(stat = "identity") +
  coord_flip()

这是使用的数据框(使其可重现)。下次请使用dput输出问题中的数据。

DF <- 
structure(list(SUBJECT = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L
), ACTION = structure(c(1L, 2L, 2L, 1L, 3L, 4L, 5L, 4L, 4L, 2L, 
3L, 4L, 1L, 1L, 1L, 3L, 4L, 4L, 4L, 1L, 4L, 4L, 2L, 5L, 3L), .Label = c("A", 
"B", "C", "D", "E"), class = "factor"), DURATION = c(39.57, 1.48, 
53.22, 10.42, 8.33, 1, 7.5, 0.35, 1.35, 2.6, 1.47, 1.13, 4.23, 
1.62, 7.58, 133.47, 14.82, 0.45, 1.07, 61.62, 42.45, 4.47, 100.92, 
9.05, 9.55)), .Names = c("SUBJECT", "ACTION", "DURATION"), 
class = "data.frame", row.names = c(NA, 
-25L))

【讨论】:

    猜你喜欢
    • 2021-05-14
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 2012-09-17
    • 2021-12-27
    • 2020-02-08
    相关资源
    最近更新 更多