【问题标题】:Formatting dates with scale_x_date in ggplot2在 ggplot2 中使用 scale_x_date 格式化日期
【发布时间】:2012-05-21 12:14:52
【问题描述】:

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

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")

第二个。

如果我删除 labels= 参数并应用

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"

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

【问题讨论】:

  • ggplot 0.9.0 有很多重大变化。您会发现transition guide 对加快速度很有帮助。

标签: r date formatting ggplot2


【解决方案1】:

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

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

【讨论】:

  • 我下面的答案现在已经过时了。这有正确的参数。
  • 嗨,我需要以不同的方式订购月份,例如 month.abb[c(7:12, 1:6)]。有什么提示吗? ¡ 谢谢!
  • 效果很好,但如何只显示短名称,例如:Jan, Feb, Mar, ...?
  • 由 date_labels 控制。使用 strptime 函数中的列表来满足您的要求:rdocumentation.org/packages/base/versions/3.6.2/topics/strptime。对于缩写月份,它是 %b
【解决方案2】:

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

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

并像documentation 所说的那样包含library(scales)

【讨论】:

  • 您应该考虑将此视为一个完整的答案并关闭此线程。
  • 也许更新参数为date_breakdate_minor_break,因为新的ggplot2版本...
  • 正确的@drmariod,似乎API再次更改,我的答案不再有效(尽管使用找到的版本的建议是文档仍然很好!)。如果我可以修改的话,我会认为 YCR 的答案现在是正确的......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-03
  • 2012-07-29
  • 1970-01-01
  • 2017-06-26
  • 1970-01-01
相关资源
最近更新 更多