R语言 如何在ggplot2中每3或6个月显示一次日期x轴标签

qjp7pelc  于 2023-05-11  发布在  其他
关注(0)|答案(2)|浏览(139)

我用下面的代码生成一个图:

ggplot(reshaped_median, aes(x= Month_Yr, y = value))+ 
  geom_line(aes(color = Sentiments)) + 
  geom_point(aes(color = Sentiments)) + 
  labs(title = 'Change in Sentiments (in median)', x = 'Month_Yr', y = 'Proportion of Sentiments %') + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

但是你可以注意到x轴上的日期标签太密集了,所以如果我想的话,它会按季度或半年(每3或6个月)显示日期。
来自Month_Yr的值的格式为%Y-%m
我怎么能这么做谢谢

o4tp2gmn

o4tp2gmn1#

第一次转换日期:df$Month_Yr <- as.Date(as.yearmon(df$Month_Yr))
那么用这个就可以解决问题了:

ggplot(reshaped_median, aes(x= Month_Yr, y = value))+ 
  geom_line(aes(color = Sentiments)) + 
  geom_point(aes(color = Sentiments)) + 
  #Here you set date_breaks  ="6 month" or what you wish
  scale_x_date(date_labels="%b-%d",date_breaks  ="3 month")+
  labs(title = 'Change in Sentiments (in median)', x = 'Month_Yr', y = 'Proportion of Sentiments %') + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))
vlurs2pr

vlurs2pr2#

还有一个办法使用scale_x_date,您可以轻松操纵x轴上的断点。

library(ggplot2)
library(tibble)

data <- tibble(
  Month_Yr = seq.Date(from = as.Date("2010/01/01"), to =  as.Date("2020/01/31"), by = "month"),
  Value = runif(121, min = 0, max = 150)
)

p <- ggplot(data = data, aes(x = Month_Yr, y = Value)) + 
  geom_point() +
  theme(axis.text.x = element_text(angle = 60, hjust = 1)) +
  scale_x_date(date_breaks = "6 months")
p

相关问题