2015-10-07 93 views
1

試圖生成堆疊的barplot(類似下面的圖,除了多年和堆積條)。理想情況下,X軸將是幾個月J,F,M ...重複(實現行名稱不能重複,但我想知道是否有方法來標記軸,然後按年分組),並且會有2個Y軸 - 與示例相同。我試圖將2 *'RainAvg'列繪製爲右側軸上的堆積條,然後將2 *'GRACEAnom'列作爲與左側軸相關的2條線。不知道從哪裏開始....任何幫助一如既往的讚賞 - 希望這是明確的。我已經添加了前幾排我的數據的圖像下面: enter image description here堆積的barplot R(多個變量)

> head(Figures, 34) 
    DecimDate GRACEAnomLVB RainAvgLVB GRACEAnomVNB RainAvgVNB 
1 2003.000 13.46956583 5.749109 6.15705017 3.478762 
2 2003.083 6.31473051 5.331211 0.97906465 2.873399 
3 2003.167 3.63883171 10.363173 0.77220028 8.090037 
4 2003.250 6.49458212 17.210327 1.24673188 17.405001 
5 2003.333 11.33909662 14.840302 5.56158736 15.673977 
6 2003.417 9.38271799 7.536387 6.00824271 9.961779 
7 2003.500 7.42633936 7.322593 6.45489806 9.617705 
8 2003.583 3.60612356 11.447746 5.60098976 15.430943 
9 2003.667 3.44546767 7.968092 6.63687748 8.056800 
10 2003.750 2.75612873 8.769927 5.22673658 8.333266 
11 2003.833 5.30475366 9.782655 6.91241363 9.305419 
12 2003.917 8.68239955 7.474251 7.37673817 5.731811 
13 2004.000 5.48150209 9.109684 4.04360382 5.772269 
14 2004.083 2.62570392 6.976879 -0.71817402 3.780555 
15 2004.167 1.45723630 10.559618 -2.23807975 6.471265 
16 2004.250 5.98037042 17.895779 0.04639658 17.677118 
17 2004.333 7.35279067 7.203534 3.23732162 8.284600 
18 2004.417 1.41878133 4.536058 0.41008077 6.321057 
19 2004.500 -0.89443672 5.439750 0.09167621 7.704055 
20 2004.583 -3.98526800 9.248759 -0.22851368 12.973643 
21 2004.667 -4.91880694 12.214854 -0.30143818 12.626995 
22 2004.750 -4.13842871 10.903502 1.08566462 11.491835 
23 2004.833 1.04833693 15.731056 4.50875694 12.300916 
24 2004.917 2.93758790 8.431368 3.10471313 3.997466 

...依此類推,直到2012年12月

+0

NB ggplot不喜歡副軸線http://bit.ly/1Lzu7ce :) –

回答

3

我在幾個項目的不是很清楚您的圖表的描述,例如您是在尋找所有年份的圖表還是每年的圖表,但以下代碼可能有助於您開始。基本思路是繪製條形圖,然後重新繪製線圖的繪圖窗口。圖表標題和標籤根據需要添加。

org_mar <- par()$mar 
    par(mar=c(5,4,4,5)+.1) 
    Figures <- as.matrix(Figures) 
    nrow_F <- nrow(Figures) 
    x_labs <- cbind(1:nrow_F,c("J","F","M","A","M","J","J","A","S","O","N","D"))[,2] 
# make bar chart 
    barplot(t(Figures[,c("RainAvgLVB","RainAvgVNB")]), yaxt="n", names.arg=x_labs, 
      xlab = "Monthly", font.lab=2, xlim= 1.2*c(1,nrow_F)-.5) 
    axis(side=4) 
    mtext("Mean Monthly Rainfall (mm)", side=4, line=2.5, font=2) 
    abline(h=0) 
# rescale the plot window and draw the line plots 
    plot.window(xlim=c(1,nrow_F), ylim=range(Figures[,c("GRACEAnomLVB","GRACEAnomVNB")])) 
    axis(side=2) 
    mtext("Water Storage Anomalay (cm)", side=2, line=2.5, font=2) 
    abline(v=par()$usr[1]) 
    lines(Figures[,2], col="black", lty=1, lwd=2) 
    lines(Figures[,4], col="blue", lty=2, lwd=2) 
    par(mar=org_mar) 

這應該使一個圖表如下所示:

enter image description here

+0

完善。上面的圖表正是我之後的非常感謝的幫助! –