2012-05-13 56 views
38

scale_x_date在以前版本的GGPLOT2的日期,我可以使用以下兩個命令之一來格式化我的X日期: 要麼格式與GGPLOT2

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=(date_format="%B")) + 

scale_x_date(major="months", minor="weeks", format="%B") + 

生成全月名稱的「%B」格式。

(恐怕我再也不能區分哪一個工作,因爲他們都是註釋掉。)

我不記得的時候,但在一個Ubuntu 12.04升級更新R或ggplot後,這不再爲我工作。現在,非常相同的數據產生錯誤:

Error in scale_labels.continuous(scale) : 
    Breaks and labels are different lengths 

隨着第一和

Error in continuous_scale(aesthetics, "date", identity, breaks = breaks, : 
    unused argument(s) (major = "months", minor = "weeks", format = "%B") 

在第二。

如果我刪除標籤=參數,並應用

scale_x_date(breaks = "1 month", minor_breaks = "1 week") + 

它產生「YYYY-MM-DD」的日期格式在每個月的第一天。 ?

諮詢與幫助功能scale_x_date,我也試過如下:

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=date_format("%B")) + 

但是,這會產生這個錯誤:

Error in structure(list(call = match.call(), aesthetics = aesthetics, : 
    could not find function "date_format" 

如何能夠做到每月名「% B「格式在我的X軸? (如果您有任何額外的見解機制產生這些錯誤消息,我也很欣賞它。)

+3

有在ggplot 0.9.0許多顯著的變化。你會發現[轉換指南](http://cloud.github.com/downloads/hadley/ggplot2/guide-col.pdf)對於加快速度非常有幫助。 – joran

回答

29

隨着新GGPLOT2 v 2.0.0,一個辦法做到這一點是:

scale_x_date(date_breaks = "1 month", date_minor_breaks = "1 week", date_labels = "%B") 
+4

我在下面的答案現在已過時。這有正確的參數。 – Mittenchops

54

沒關係,答案是使用文檔中找到的版本,

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=date_format("%B")) + 

而對於包括library(scales)作爲documentation說。

+1

你應該考慮認識到這是一個完整的答案,並關閉此線程。 –

+1

自從新的ggplot2版本更新參數到'date_break'和'date_minor_break' ... – drmariod

+0

正確@drmariod,它似乎API已經改變了,我的答案不再有效(儘管使用版本的建議發現是文檔還是不錯的!)。如果我可以修改,我會認出YCR的答案是正確的... – Mittenchops