从数据框绘制时间序列

时间:2013-02-27 13:47:15

标签: r plot dataframe

我正在尝试以这种格式绘制数据框的时间序列:

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个不同的时间点(列)上有一条代表表达值的线。

它应该是相当微不足道的,但到目前为止我找不到方法......最简单的方法是什么?

谢谢,

1 个答案:

答案 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)