R语言 ggplot2中X轴上的日期格式

62o28rlo  于 2023-05-04  发布在  其他
关注(0)|答案(2)|浏览(200)

我有一个非常,非常坚韧的时间,让x轴看起来正确的我的图表。
以下是我的数据:

df <- data.frame(
  Month = factor(c(
    "2011-07-31", "2011-08-31", "2011-09-30", "2011-10-31", "2011-11-30",
    "2011-12-31", "2012-01-31", "2012-02-29", "2012-03-31", "2012-04-30",
    "2012-05-31", "2012-06-30"
  )),
  AvgVisits = c(
    6.98655104580674, 7.66045407330464, 7.69761337479304, 7.54387561322994,
    7.24483848458728, 6.32001400498928, 6.66794871794872, 7.207780853854,
    7.60281201431308, 6.70113837397123, 6.57634103019538, 6.75321935568936
  )
)

以下是我试图绘制的图表:

ggplot(df, aes(x = Month, y = AvgVisits)) + 
  geom_bar() +
  theme_bw() +
  labs(x = "Month", y = "Average Visits per User")

该图表工作正常-但是,如果我想调整日期的格式,我相信我应该添加以下内容:scale_x_date(labels = date_format("%m-%Y"))
我试着把日期标成“MMM-YYYY”

ggplot(df, aes(x = Month, y = AvgVisits)) + 
  geom_bar() +
  theme_bw() +
  labs(x = "Month", y = "Average Visits per User") +
  scale_x_date(labels = date_format("%m-%Y"))

当我绘制它时,我继续得到这个错误:
stat_bin: binwidth defaulted to range/30. Use 'binwidth = x' to adjust this.
尽管我花了几个小时研究geom_linegeom_bar的格式,但我无法修复它。有人能解释一下我做错了什么吗?
编辑:作为后续思考:可以使用date作为因子吗?还是应该在date列上使用as.Date

mrwjdhj3

mrwjdhj31#

要显示月份,如Jan 2017 Feb 2017等:

scale_x_date(date_breaks = "1 month", date_labels =  "%b %Y")

如果日期占用太多空间,请调整日期的Angular :

theme(axis.text.x=element_text(angle=60, hjust=1))
3df52oht

3df52oht2#

你能把日期作为一个因素吗?
是的,但你可能不应该。
...还是应该在日期列上使用as.Date
是的。
这就引出了这个问题:

library(scales)
df$Month <- as.Date(df$Month)
ggplot(df, aes(x = Month, y = AvgVisits)) + 
  geom_bar(stat = "identity") +
  theme_bw() +
  labs(x = "Month", y = "Average Visits per User") +
  scale_x_date(labels = date_format("%m-%Y"))

我已经将stat = "identity"添加到了geom_bar调用中。
此外,关于binwidth的消息不是错误。一个错误实际上会说“错误”,同样,一个警告也会说“警告”。否则这只是一个信息。

相关问题