您好我有一个如下所示的数据框:
Seq H E T C
1 Seq_1 2 1 5 4
2 Seq_2 2 1 5 4
3 Seq_3 2 1 5 4
4 Seq_4 0 0 6 6
5 Seq_5 0 4 2 6
其中H,E,T和C代表每个序列中这些特征的计数。
我正在尝试构建一个线图,其中每一行应代表一个序列。 X轴将是特征(H,E,T,C)和Y轴的相应计数,因此这些线将显示每个序列中计数的变化。
我该怎么做?我已经搞砸了很多东西但是无法做到!
答案 0 :(得分:1)
ggplot的技巧是它希望数据采用“长”格式。使用melt
以这种格式获取它通常是最容易的。一旦融化,就可以根据需要查看绘图。这是一个例子:
txt <- " Seq H E T C
1 Seq_1 2 1 5 4
2 Seq_2 2 1 5 4
3 Seq_3 2 1 5 4
4 Seq_4 0 0 6 6
5 Seq_5 0 4 2 6 "
dat <- read.table(textConnection(txt), header = TRUE)
library(ggplot2)
dat.m <- melt(dat)
ggplot(dat.m, aes(variable, value, group = Seq, colour = Seq)) +
geom_line()
这会导致Seq_1 - Seq_3出现一些过度绘图问题,因此您可能需要考虑丢弃颜色和刻面:
ggplot(dat.m, aes(variable, value, group = Seq)) +
geom_line() +
facet_wrap(~Seq)
当您需要检查100个序列时,分面显然变得不那么有用了。