2015-06-17 68 views
2

我想在ggplot2 (barplot)中製作一個圖表。我的數據集中有數天之間的數據點。我只想繪製變量的日期並省略空的日期。從x軸ggplot2隱藏缺失日期

我一直在尋找一小時試圖找到答案。我發現這裏的一些回覆,表明該修復是這樣的:

scale_x_date(format = '%d%b', major='days') 

然而,scale_x_date內這些爭論似乎並沒有工作了。有沒有人有一個快速和簡單的解決方案?

+2

如果您還將調用發佈到正在製作的'ggplot2()',以便我們可以重現它,這將會有所幫助。 –

+1

一小部分數據將有助於確保我們正在回答正確的問題。 – tegancp

+1

請參閱[如何製作一個很好的重現示例](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – MrFlick

回答

1

如果我沒有提到ggplot2 docs這是一個很棒的資源,那麼我將會失去工作,這些資源都包含完整的記錄。當你不知道如何用ggplot做某事時,他們往往是最好的開始。

的「翻譯」爲您在目前的框架上面引述的代碼是:

scale_x_date(breaks='days', labels=date_format("%d%b")) 

這將要求包scales。除非你有相當幾次約會,你可能也想喜歡

theme(axis.text.x = element_text(angle=45)) 

的調整。如果你只是想標籤您擁有數據的日期,儘量

scale_x_date(breaks=df$date, labels = date_format("%m/%d")) 

其中df$date是包含日期的數據框的列,當然,您可以使用您的首選日期格式字符串。

+0

謝謝。最終的代碼努力擺脫沒有數據的日期,但它仍然留下了這個開放的差距。我試圖只有有數據的日期,沒有差距。有沒有辦法將酒吧移動到一起並消除開放空間? – user3585829

+0

如果有效日期間隔均勻,ggplot應該爲你做這件事。如果它們不是均勻間隔的,但是你希望它們在後續值之間有相同的間隔顯示,那麼你需要告訴ggplot忽略這些是日期的事實,只要把它們當作有序集合的標籤就可以了。你可以用'df $ date < - factor(df $ date)'完成此操作。 – tegancp