2014-04-19 71 views
0

我有四個時間序列,我想繪製,最好使用基本圖形。繪製覆蓋時間系列

year<-c(2000,2001,2002,2003,2004,2005,2006,2007) #x axis 
a<-c(36.2,42.4,43.4,56.4,67.4,42.4,22.4,20.4) 
b<-c(NA,NA,NA,56.4,67.4,42.4,22.4,20.4) 
c<-c(36.4,42.3,43.7,56.4,67.2,88.3,99.3,99.9) 
d<-c(36.4,42.3,43.7,56.4,NA,NA,NA,NA) 

#using different thickness of lines to distinguish between them? Dunno 
par(mar = c(4,4,4,4)) 
par(mfrow=c(1,2)) 
plot(year,a, xlab="Year", ylab="Whatever", type="l", lwd=6, ylim=c(20, 100)) 
lines(year,b, type="l", lwd=2, col="yellow") 
plot(year,c, xlab="Year", ylab="Whatever", type="l", lwd=6, ylim=c(20, 100)) 
lines(year,d, type="l", lwd=2, col="yellow") 

正如你所看到的,二分之一的系列始終是其中另一系列A和B的子集,在他們開始非常相似,所以它不會在一個情節好看(這個特性)。 你有任何建議如何繪製這種數據?我不介意在一個情節中擁有這一切,但這不是必要的。 乾杯。

回答

3

這使用plot.zoo,它反過來使用基本圖形並接受大部分基本圖形圖形參數。請注意,在plot.zoocollwd被回收。參數screen指示每個系列在哪個位置,以便將其全部置於一個面板中,用screen = 1代替screen參數。根據需要添加main和其他參數。請參閱下面的?plot.zoo和第一張圖。

library(zoo) 
plot(zoo(cbind(a, b, c, d), year), screen = c(1, 1, 2, 2), 
    col = c("black", "yellow"), ylim = c(20, 100), lwd = c(6, 2)) 

還要注意,在這種情況下,僅僅加入library(lattice),改變plotxyplot我們可以通過xyplot.zoo得到格圖(下圖2圖)。

plot.zoo plot

xyplot.zoo plot

+0

有什麼辦法如何把它們彼此相鄰?我嘗試了'rbind'而不是'cbind',它不起作用。 – Vochmelka

+1

@Vochmeika,'plot.zoo'參數'nc = 2'會將面板繪製成兩列而不是一列。 –

0

什麼是這樣的:

year <- c(2000,2001,2002,2003,2004,2005,2006,2007) #x axis 
a <- c(36.2,42.4,43.4,56.4,67.4,42.4,22.4,20.4) 
b <- c(NA,NA,NA,56.4,67.4,42.4,22.4,20.4) 
c <- c(36.4,42.3,43.7,56.4,67.2,88.3,99.3,99.9) - 100 
d <- c(36.4,42.3,43.7,56.4,NA,NA,NA,NA) - 100 

#using different thickness of lines to distinguish between them? Dunno 
par(mar = c(4,4,4,4)) 
par(mfrow=c(1,1)) 
plot(year,a, xlab="Year", ylab="Whatever", type="l", lwd=6, ylim=c(-100, 100)) 
lines(year,b, type="l", lwd=2, col="yellow") 
lines(year,c, xlab="Year", ylab="Whatever", type="l", lwd=6, ylim=c(-100, 100)) 
lines(year,d, type="l", lwd=2, col="yellow")