我想要绘制四个时间序列,最好使用基本图形。
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在它们的开头非常相似,因此在一个图(这个特征)中看起来不太好。 你有什么建议如何绘制这种数据吗?我不介意在一个情节中拥有它,但没有必要。 欢呼声。
答案 0 :(得分:3)
这使用plot.zoo,而plot.zoo又使用基本图形并接受大多数基本图形图形参数。请注意,在plot.zoo
中,col
和lwd
被回收。 screen
参数指示每个系列所在的位置,以便将其全部放在一个面板中,将screen
参数替换为screen = 1
。根据需要添加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)
并将plot
更改为xyplot
,我们就可以通过xyplot.zoo
获得格子图(下面第二张图)。
答案 1 :(得分: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")