首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的Ggplots不正确地格式化日期(按年排序,格式为%m/%y)

问我的Ggplots不正确地格式化日期(按年排序,格式为%m/%y)
EN

Stack Overflow用户
提问于 2022-11-05 21:48:19
回答 1查看 14关注 0票数 1
代码语言:javascript
复制
countrydf$dates <- format(as.Date(countrydf$date, format="%Y-%m-%d"), "%m/%y", ordered = T)
germanydf <- subset(countrydf,location == "Germany")
ggplot(germanydf, aes(x=dates, y=total_deaths)) + 
  geom_bar(aes(), stat = 'identity', position = 'dodge') +
 geom_smooth(method="lm", col="Grey", size=1) + 
  labs(title="Deaths vs date in Germany", subtitle="From ourworldindata.org", y="Total Deaths", x="Date")  +
  theme(axis.text.x = element_text(angle = 45, vjust = 0.5, hjust=.5))

​

​

即使我格式化为日期,我仍然得到的日期为"01/2020,01/2021,01/2022“(不正确)与"01/2020,02/2020,03/2020”(正确)。任何帮助都将不胜感激!

同时,当查看数据帧时,它们的排序也是正确的,因此这显然是。

​

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-05 21:59:55

函数format()返回一个字符串,而不是日期。因此,您可以得到格式为01/2020、02/2020等格式的字符串。当然,这些字符串在排序时不会按日期排序--但就像任何字符串一样,字母数字和01/2021放在02/2020之前。

到底发生了什么?当ggplot将变量作为X时,它会将其转换为一个因子,因为它是一个绝对变量(而不是连续变量)。默认情况下,因子级别按字母数字排序。

解决办法:

  • 删除format函数。了解日期。如果需要,可以从日期开始(例如,使用lubridate).
  • change日期列来计算和指定级别manually.
  • format日期,从年份开始。

)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74331730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档