我正在尝试以这种格式绘制数据框的时间序列:
Gene t1 t2 t3 t4 t5
geneA 0.171708555542224 0.767412947810676 0.754849467082325 0.893904836629662 -0.451533145139049
geneB 0.32989453548287 0.304464261184109 0.632407796520215 1.2965570364275 -0.00269630000204213
geneC 1.47092503615513 0.708756145675017 1.27888805232732 1.45653164709635 0.913461102204938
geneD 0.379307974619187 0.577591822285932 -0.203915993729493 0.0743865362148819 0.561894770555292
geneE -0.162029544343246 0.332622377925421 1.18614452957358 1.87262670303989 0.100212594882377
CG10170-RA -0.152808420012908 -0.294930227688068 0.935190065253332 1.98475948430149 0.282560916666689
对于每个基因(行),我想在5个不同的时间点(列)上有一条代表表达值的线。
它应该是相当微不足道的,但到目前为止我找不到方法......最简单的方法是什么?
谢谢,
答案 0 :(得分:3)
假设DF
是数据框,首先将其置于更标准的形式,其中每列是时间序列。然后使用matplot
:
m <- setNames(t(DF[-1]), DF[[1]])
n <- nrow(m)
matplot(1:n, m)
或使用动物园我们可以使用经典图形,格子图形或ggplot2图形使用单个或多个面板绘制它们:
library(zoo)
z <- zoo(m)
# classic graphics
plot(z) # multiple panels
plot(z, screens = 1, col = 1:n) # one panel
library(lattice)
xyplot(z)
xyplot(z, screens = 1, col = 1:n)
library(ggplot2)
autoplot(z)
autoplot(z, facets = NULL) + aes(linetype = NULL)