我试图将此表绘制成平行线,其中y轴范围是-50到150,x轴是矢量“天”。每个向量(X1到X8)都有很多缺失值,所以我只想绘制现有值并用线条连接它们(对于每个向量)。
这是我用来尝试绘制数据的命令
plot(dataframe,plot.type="single",ylim=c(-50,150))
这是我试图绘制的数据框
Days X1 X2 X3 X4 X5 X6 X7 X8
1 600 -15 -18 NA 14 NA NA NA NA
2 620 NA NA NA NA NA NA NA 21
3 660 0 NA NA NA NA NA NA NA
4 700 NA 8 NA NA NA NA NA 33
5 760 NA NA NA 8 NA NA NA NA
6 780 0 NA NA NA NA NA NA NA
7 800 NA 11 NA NA 65 NA NA NA
8 820 NA NA NA NA NA NA NA 29
9 840 NA NA NA NA 85 NA NA NA
10 880 NA NA NA 5 75 NA NA NA
11 900 NA NA NA NA NA NA 10 NA
12 920 NA NA 12 NA NA NA NA 57
13 940 NA 22 NA NA NA NA NA NA
14 960 NA NA 12 NA NA NA NA NA
15 1000 NA NA 14 NA NA NA NA NA
16 1060 NA NA 14 NA NA NA NA NA
17 1120 NA NA 11 NA NA NA NA NA
但我得到的只是一个几乎空白的窗口。
这将是我想要获得什么样的情节的一个很好的例子: http://ajpheart.physiology.org/content/ajpheart/284/5/H1585/F4.large.jpg
有什么想法吗?
答案 0 :(得分:1)
试试这个:
matplot(dat[1],dat[-1],type="n")
Map(function(x,y) lines(x[!is.na(y)],y[!is.na(y)]),dat[1],dat[-1])
结果:
matplot
基本上设置了绘图区域的边界,然后Map
调用依次绘制每一行,删除NA
值。
为了能够重现结果,这是dat
数据集:
dat <- data.frame(Days = c(600L, 620L, 660L, 700L, 760L, 780L, 800L, 820L, 840L, 880L, 900L, 920L, 940L, 960L, 1000L, 1060L, 1120L
), X1 = c(-15L, NA, 0L, NA, NA, 0L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), X2 = c(-18L, NA, NA, 8L, NA, NA, 11L, NA, NA,
NA, NA, NA, 22L, NA, NA, NA, NA), X3 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 12L, NA, 12L, 14L, 14L, 11L), X4 = c(14L,
NA, NA, NA, 8L, NA, NA, NA, NA, 5L, NA, NA, NA, NA, NA, NA, NA), X5 = c(NA, NA, NA, NA, NA, NA, 65L, NA, 85L, 75L, NA, NA,
NA, NA, NA, NA, NA), X6 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), X7 = c(NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, 10L, NA, NA, NA, NA, NA, NA), X8 = c(NA, 21L, NA, 33L, NA, NA, NA, 29L, NA, NA, NA, 57L, NA, NA, NA, NA, NA))