繁体   English   中英

R:如何正确偏移 ggplot2 中每日数据的季度标签?

[英]R: How to properly offset yearquarter labels for daily data in ggplot2?

我正在尝试使用 yearquarter 标签而不是原始日期制作一个简单的 plot,以显示值的发展如何随着季度的变化而变化。 但是,当尝试格式化 YQ 标签时,它们似乎有一些偏移,因为它们没有正确启动。 看代码和图

library(tidyverse)
library(zoo)

(df_Example <- tibble(Date = seq(as.Date("2019-01-01"), as.Date("2020-12-31"), by = "day"),
                     Value = 1))
#> # A tibble: 731 x 2
#>    Date       Value
#>    <date>     <dbl>
#>  1 2019-01-01     1
#>  2 2019-01-02     1
#>  3 2019-01-03     1
#>  4 2019-01-04     1
#>  5 2019-01-05     1
#>  6 2019-01-06     1
#>  7 2019-01-07     1
#>  8 2019-01-08     1
#>  9 2019-01-09     1
#> 10 2019-01-10     1
#> # ... with 721 more rows

ggplot(data = df_Example, aes(x = Date, y = Value)) +
  geom_line() +
  scale_x_date(date_breaks = "3 months",
               labels = function(x) format.yearqtr(x, "%Y Q%q"))

在此处输入图像描述

如图所示,该行在标记开始之前开始。 我非常希望这两者能够保持一致。

这是一个选项。

library(ggplot2)
library(zoo)      # as.yearqtr, as.POSIXct.yearqtr
qtr1 <- function(by) {
  function(x) {
    xqtr <- as.Date(as.POSIXct(as.yearqtr(x)))
    seq(xqtr[1], xqtr[2], by = by)
  }
}
ggplot(data = df_Example, aes(x = Date, y = Value)) +
  geom_line() +
  scale_x_date(breaks = qtr1("3 months"),
               labels = function(x) zoo::format.yearqtr(x, "%Y Q%q"))

具有更多控制器轴刻度的 ggplot2

笔记:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM