使用ggplot2中的scale_x_date格式化日期

Mit*_*ops 52 formatting r date ggplot2

在以前版本的ggplot2中,我能够使用以下两个命令之一来格式化我的x日期:

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=(date_format="%B")) +
Run Code Online (Sandbox Code Playgroud)

要么

scale_x_date(major="months", minor="weeks", format="%B") +
Run Code Online (Sandbox Code Playgroud)

生成完整月份名称的"%B"格式.

(我担心我再也无法区分哪一个有效,因为它们都被注释掉了.)

我不记得什么时候,但在ubuntu 12.04升级中更新R或ggplot之后,这对我来说不再适用.现在,完全相同的数据会产生错误:

Error in scale_labels.continuous(scale) : 
  Breaks and labels are different lengths
Run Code Online (Sandbox Code Playgroud)

与第一,和

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

随着第二个.

如果我删除labels =参数,并申请

scale_x_date(breaks = "1 month", minor_breaks = "1 week") +
Run Code Online (Sandbox Code Playgroud)

它在每个月的第一天产生日期格式"YYYY-MM-DD".

咨询功能帮助?scale_x_date,我也尝试了以下方法:

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=date_format("%B")) +
Run Code Online (Sandbox Code Playgroud)

但是这会产生这个错误:

Error in structure(list(call = match.call(), aesthetics = aesthetics,  : 
  could not find function "date_format"
Run Code Online (Sandbox Code Playgroud)

如何在x轴上实现月份名称"%B"格式?(如果您对产生这些错误消息的机制有任何其他见解,我也会感激.)

Mit*_*ops 60

没关系,答案是使用文档中的版本,

scale_x_date(breaks = "1 month", minor_breaks = "1 week", labels=date_format("%B")) +
Run Code Online (Sandbox Code Playgroud)

并且library(scales)文档所述那样包含.

  • 您应该考虑将此视为完整答案并关闭此主题. (2认同)

YCR*_*YCR 53

使用新的ggplot2 v 2.0.0,一种方法是:

scale_x_date(date_breaks = "1 month", date_minor_breaks = "1 week", date_labels = "%B")
Run Code Online (Sandbox Code Playgroud)

  • 我的答案现在已经过时了.这有正确的参数. (6认同)