【问题标题】:Change date format and keep chronological order in graph in R更改日期格式并在 R 中的图表中保持时间顺序
【发布时间】:2021-11-08 22:12:24
【问题描述】:

我正在尝试将我的列“周”更改为日期格式 %d/%m/%Y。我首先通过执行 mutate (Week = as.Date(Week)) 将列类型转换为日期,然后执行 mutate(Week = format(as.Date(Week), "d%/%m/%Y")) 来完成这项工作,但是当我将其绘制为图表时,我无法按时间顺序排列日期,因为列 Week 已成为类型字符。

有什么方法可以让我的日期为 %d/%m/%Y 并按时间顺序绘制?

谢谢:)

【问题讨论】:

  • 不要将星期转换为字符。 ggplot 将直接处理日期。使用 scales_x_date(date_labels= ...) 修复格式
  • 谢谢。如果我使用它,我会按日期和月份而不是按时间顺序排列我的图表 x

标签: r date ggplot2 format chronological


【解决方案1】:

确保使用您的格式将日期字符解析为日期对象。然后,ggplot 识别出这一点并将正确的标签放在 x 轴上:

library(tidyverse)

data <-
  tibble(Date = c("30/11/2020", "01/12/2020")) %>%
  mutate(Date = Date %>% parse_date(format = "%d/%m/%Y"))
data
#> # A tibble: 2 x 1
#>   Date      
#>   <date>    
#> 1 2020-11-30
#> 2 2020-12-01

qplot(x = Date, y = 1, data = data)

由reprex package (v2.0.1) 于 2021-09-13 创建

【讨论】:

  • 感谢您的帮助。在图表中,我得到了 %B d% 的格式,但我在寻找 %d/%m/%Y?
  • 您可以qplot(x = Date, y = 1, data = data) + scale_x_date(date_labels = "%d/%m/%Y") 调整绘图中的日期格式。年份被省略,因为在我的示例的所有行中都是相同的。
  • 终于成功了!我添加了 date_breaks 以便包括所有周,现在格式正确,非常感谢,非常感谢
猜你喜欢
  • 1970-01-01
  • 2017-01-08
  • 2018-03-12
  • 1970-01-01
  • 2019-07-28
  • 2015-03-03
  • 2011-11-18
  • 2022-07-22
相关资源
最近更新 更多