2014-04-17 165 views
1

當使用{graphics}繪製堆疊barplot時,出現x軸未正確縮放的問題,滴答圖未正確對齊條形圖,而使軸太短。爲barplot正確縮放x軸

# dummy data 
mat <- structure(c(0L, 5L, 7L, 10L, 12L, 14L, 16L, 18L, 20L, 22L, 24L, 
       26L, 28L, 30L, 32L, 34L, 36L, 38L, 40L, 42L, 44L, 46L, 48L, 50L, 
       52L, 54L, 56L, 58L, 60L, 62L, 63L, 64L, 0L, 0L, 0L, 3L, 0L, 0L, 
       1L, 0L, 0L, 0L, 5L, 0L, 1L, 4L, 0L, 9L, 0L, 0L, 1L, 0L, 8L, 0L, 
       7L, 0L, 1L, 1L, 6L, 0L, 1L, 3L, 4L, 0L, 1L, 1L, 5L, 6L, 1L, 6L, 
       0L, 0L, 5L, 4L, 1L, 8L, 0L, 1L, 1L, 3L, 1L, 3L, 1L, 0L, 1L, 1L, 
       1L, 1L, 0L, 3L, 3L, 5L, 4L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 
       0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
       0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 6L, 0L, 
       11L, 0L, 7L, 0L, 6L, 0L, 0L, 5L, 4L, 0L, 1L, 0L, 1L, 0L, 0L, 
       1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 9L, 0L), .Dim = c(32L, 5L 
       ), .Dimnames = list(NULL, c("Time", "Var1", "Var2", "Var3", "Var4" 
       ))) 

# barplot 
barplot(t(mat[,2:4]), beside=F, legend=levels(mat), col=c("blue",'red','forestgreen','purple')) 

# manually assign x-axis 
axis(1,at=c(1:32),labels=mat[,1]) 

任何指針,將不勝感激。我對ggplot2解決方案不感興趣。謝謝!

enter image description here

+0

你忽略你的一列在'barplot'調用 試試這個'barplot(T(墊[2:5]!),...' – infominer

回答

2

爲了您的軸,得到barplots的座標第一。

bp <-barplot(t(mat[,2:5]), beside=F, 
      legend = levels(mat), col = c("blue",'red','forestgreen','purple')) 

現在使用BP的X-TICK標籤

axis(1,at=bp,labels=mat[,1]) 

所得的情節 enter image description here

另外,如果你與你的繪圖窗口/設備的寬度玩,你可以得到所有標籤。

+0

感謝評論和提供解決方案感嘆,這樣的我身邊的一個錯誤! –