2016-08-02 32 views
1

我想繪製一個barplot,其中x軸是月數,y軸是變量的值。該變量可以在幾個月內爲空。我如何強制軸x始終顯示12個月?如何在barplot中顯示空數據R

當V等的數據幀:

month variable 
    1 125 
    2 45 
    3 158 
    4 15 
    5 58 
    6 78 
    7 89 
    9 15 
    10 85 
    11 799 
    12 55 
八月

這裏(月8)可變是0

bp <- barplot(V[,2], axes = FALSE) 
axis(1, at = bp, labels=c("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec")) 

由於

+0

嘗試通過'NA' – jlesuffleur

+0

更換'NULL'值很難給你一個明確的答案不知道是什麼'V'看起來像。你能否提供一個[可重現的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? –

回答

1

您需要墊的NA在八月(第8個月)。只需使用

bp <- barplot(append(V[,2], NA, 7), axes = FALSE) 
axis(1, at = bp, labels=c("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec")) 

更一般的我會做到這一點:

x <- rep(NA, 12) 
x[V$month] <- V$variable 
bp <- barplot(x, axes = FALSE) 
axis(1, at = bp, labels=c("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec")) 

enter image description here

+0

更通用的填充解決方案是創建一個全新的數據框架,包含所有12個月:'df < - data.frame(month = 1:12)'。然後把'V'和'df'(其中'V'是你原來的數據幀,可能有一些缺失的月份)合併:'V < - merge(df,V,all.x = TRUE)'。現在所有錯過的月份都會在'V'中有相應的'NA's。 –

+1

或者更簡潔:'bp < - barplot(ifelse(在%V $ month,V $ variable,NA中爲1:12%),axes = FALSE)'。 –