![](/img/trans.png)
[英]How to show each year-quarter in x-axis in the time plot generated by ggplot
[英]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-Q1
、 2020-Q2
等内容,而不是默认标签。
有什么办法可以做到这一点?
任何指针都会非常有帮助
实现所需结果的一种选择是将date
转换为字符。 如果你想要一个破折号而不是空格,你可以通过scale_x_discrete
的labels
参数来做到这一点:
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.