随时间变化的图测量[ggplot2]

时间:2019-03-01 10:38:34

标签: r ggplot2

我有一个看起来像这样的数据框:

   A1    A2    A3    A4    A5
   2     2     2     2     2
   3     3     3     3     4
   3     3     3     3     4
   1     1     2     2     1
   3     2     2     3     2
   4     4     4     3     4

我想使用{{1}中的ggplot2在单个图表上绘制多条线,以显示从A1到A5的趋势(这是同一时间的5个测量值)。 }},其中r是值为y-axis的分类变量。我经历了很多建议使用1 - 5中的meltreshape2中的gather的答案,但是它们并不能满足我的需求。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

对于要显示数据的方式,我还不太清楚,但是也许是这样的吗?

library(tidyverse)
df %>%
    rowid_to_column("patient") %>%
    mutate(patient = factor(patient)) %>%
    gather(key, val, -patient) %>%
    ggplot(aes(x = key, y = val, colour = patient, group = patient)) +
    geom_line()

enter image description here

df %>%
    rowid_to_column("patient") %>%
    mutate(patient = factor(patient)) %>%
    gather(key, val, -patient) %>%
    ggplot(aes(x = key, y = val, colour = patient, group = patient)) +
    geom_line() +
    facet_wrap(~ patient)

enter image description here


样本数据

df <- read.table(text =
    "  A1    A2    A3    A4    A5
   2     2     2     2     2
   3     3     3     3     4
   3     3     3     3     4
   1     1     2     2     1
   3     2     2     3     2
   4     4     4     3     4", header = T)

要删除x轴,您可以做

df %>%
    rowid_to_column("patient") %>%
    mutate(patient = factor(patient)) %>%
    gather(key, val, -patient) %>%
    ggplot(aes(x = key, y = val, colour = patient, group = patient)) +
    geom_line() +
    facet_wrap(~ patient) +
    theme(
        axis.title.x = element_blank(),
        axis.text.x = element_blank(),
        axis.ticks.x = element_blank())

enter image description here

请介意,删除x轴可能不太明智。