首页 > 解决方案 > 在 x 轴上绘制月份下方的年份

问题描述

我不是在寻求编码方面的帮助,只是在我应该采取的方向上寻求帮助,即使用什么功能。我想知道是否可以使用 ggplot 来绘制类似的东西:

在此处输入图像描述

标签: rggplot2

解决方案


1)一种简单的方法是将年份放在每年一月的下方(或者使用六月,例如,如果您希望年份居中 - 即在下面的代码中将 1 替换为 6)。另一种方法是使用%Y代替. 将一月替换为年份%b\n%Y

首先介绍一些测试数据——这通常应该在问题中完成,但我这次提供了一些。x测试数据框的列d是类的"yearmon"并且y是数字的。我假设问题中 X 轴上的数字旨在代表月份,但如果它们打算成为季度,那么从"yearqtr"班级开始并使用scale_x_yearqtr适当的调整来代替。

library(ggplot2)
library(zoo)

d <- data.frame(x = as.yearmon("2000-1") + 0:23/12, y = 1:24) # test data

x <- d$x
autoplot(d) 
ggplot(d, aes(x, y)) + 
  geom_line() + 
  geom_point() + 
  scale_x_yearmon(breaks = x, lab = format(x, ifelse(cycle(x) == 1, "%b\n%Y", "%b")))

2)或者如果您从动物园对象开始z

z <- read.zoo(d)
x <- time(z)
autoplot(z, geom = c("line", "point")) + 
  scale_x_yearmon(breaks = x, lab = format(x, ifelse(cycle(x) == 1, "%b\n%Y", "%b"))) + 
  xlab("")

截屏


推荐阅读