我有读入R.为了简单起见两个大的数据集,考虑以下几点:绘制双y轴上时x和y lenghts不同
##Data set 1
x = c("2005", "2006", "2007", "2008", "2009", "2010")
y = c(1,2,4,6,4,3)
##Data set 2
##Shorter than D2. Missing 2005
x1 = c("2006", "2007", "2008", "2009", "2010")
y1 = c(20,40,60,50,29)
我要绘制两个数据集与线图一个双y轴。理想的情况下密谋想这样的:
plot(x, y, type = "o", col = "red")
par(new = TRUE)
plot(x, y1, type = "o", col = "blue",
xaxt = "n", yaxt = "n", xlab = "", ylab = "")
axis(4)
但当然x
任何y1
是不一样的大小,所以我得到一个错误。我试过
plot(x1, y1, type = "o", col = "blue",
xaxt = "n", yaxt = "n", xlab = "", ylab = "")
但是然后y1
只是伸出来覆盖整个长度。
在这种简单的情况下,我可以添加一个空行Y1
来覆盖丢失的2005年数据,但这不是我真实数据中的实际解决方案。无论如何,我可以告诉R相应地排列这两个数据集?
此外,我宁愿使用gplots,因为我喜欢简单的能力来抵消我的错误条。该代码可能是这个样子
SE = c(.20,.40,.60,.50,.29)
SE1 = c(.20,.40,.60,.50,.29)
offset = .08
plotCI(x = x, y = y, uiw = SE, type = "o",col = "red")
par(new = TRUE)
plotCI(x = (x1) + offset, y = y1, type = "o", uiw = SE1, col = "blue",
xaxt = "n", yaxt = "n", xlab = "", ylab = "")
axis(4)
示例图形会很方便。你想通过图形的高度来缩放这些值吗?也许只是通过颜色来区分(匹配轴线)?或者,你是否希望规模成为所有价值的范围,低价位的价格范围非常低,而高价位的价位更远? – John
感谢您的回复!我是一个新用户,所以我不能张贴我希望做的照片。但请查看http://all-geo.org/highlyallochthonous/2007/09/how-fast-is-the-arctic-melting/。他们有一个双y轴情节,类似于我希望创造的情节。除了我的情况,我的一条情节线的数据年数比另一条少。 – Vinterwoo
我仍然很高兴听到其他人有什么要说的,但其他人分享了在第二个绘图命令中使用xlim = range(Data1 $ Year,Data2 $ Year)的想法,这似乎很好地解决了这个问题。感谢大家的帮助! – Vinterwoo