绘制两个具有不同x范围的y轴

时间:2015-11-27 21:58:32

标签: r plot

正如现在所写,这产生了两个y轴上的两个数据集的图,但没有反映x范围的差异。 y2的x范围仅为1988年至2014年,y1的范围为1969年至2014年。我该如何解决这个问题?

df1<-data.frame(Year=c(1969,1975,1983,1988,1994,2003,2011),y1=c(412,700,1625,4521,8180,10563,25712))
df2<-data.frame(Year=c(1988:2014), y2=c(55,141,82,75,364,771,312,191,120,273,330,291,343,321,313,339,264,312,295,429,217,548,535,654,863,1379,1025))
par(mar= c(5,4,4,4))
plot(y1 ~ Year, data = df1, xlim=c(1969,2020), pch = 16, cex = 1.2, xlab = "year", ylab = "")
axis(2, ylim = c(0,27000))
mtext("y1", side = 2, line = 2.5)
par(new = T)
plot(y2 ~ Year, data = df2, pch = 1, cex = 1.2, xlab = "", ylab = "", axes = F, xlim = c(1988, 2014))
mtext("y2", side = 4, line = 2.5)
axis(4, ylim = c(0, 1500))

df2的年份范围应该只是1988年到2014年的形式,但它在整个范围内的绘制方式如何。

1 个答案:

答案 0 :(得分:1)

您可以在twoord.plot包中使用plotrix功能。

library(plotrix)
twoord.plot(df1$Year, df1$y1, df2$Year, df2$y2, xlab="Year", lylim = range(df1$y1) + c(-1000, 1000), rylim = range(df2$y2) + c(-100, 100), type = "o", ylab = "y1", rylab = "y2")

enter image description here