我有讀入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