我有一个看起来像这样的数据框:
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
中的melt
或reshape2
中的gather
的答案,但是它们并不能满足我的需求。非常感谢您的帮助。
答案 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()
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)
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())
请介意,删除x轴可能不太明智。