繁体   English   中英

当轴刻度标签在年度季度时,在 ggplot 中格式化 x 轴

[英]Formatting x-axis in ggplot when axis tick labels are in Year-quarter

我有以下ggplot

library(ggplot2)
library(zoo)
Dat = rbind(data.frame('name' = 'A', 'val' = sample(1:100, 10, replace = T), 'date' = as.yearqtr(seq(as.Date('2020-01-01'), by = '1 quarter', length.out = 10))),
            data.frame('name' = 'B', 'val' = sample(1:100, 10, replace = T), 'date' = as.yearqtr(seq(as.Date('2020-01-01'), by = '1 quarter', length.out = 10))),
            data.frame('name' = 'C', 'val' = sample(1:100, 10, replace = T), 'date' = as.yearqtr(seq(as.Date('2020-01-01'), by = '1 quarter', length.out = 10))))

ggplot(Dat, aes(x = date, y = val, fill = name)) 

但是,在 x 轴上,我希望刻度标签应显示2020-Q12020-Q2等内容,而不是默认标签。

有什么办法可以做到这一点?

任何指针都会非常有帮助

实现所需结果的一种选择是将date转换为字符。 如果你想要一个破折号而不是空格,你可以通过scale_x_discretelabels参数来做到这一点:

library(ggplot2)
library(zoo)

ggplot(Dat, aes(x = as.character(date), y = val, fill = name)) +
  geom_col() +
  scale_x_discrete(labels = ~ gsub(" ", "-", .x))

您可以修改zoo::scale_x_yearqtr格式参数...

library(ggplot2)
library(zoo)
ggplot(Dat, aes(x = date, y = val, fill = name)) +
  geom_point()+
  scale_x_yearqtr(format = "%Y-Q%q")

代表 package (v2.0.1) 于 2021 年 11 月 24 日创建

暂无
暂无

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

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