如何简化 X 轴刻度(年季度 R)

How do I simplify the X-axis scale (year Quarters R)

这里是大三学生,我有一个计量经济学项目要在 15 日交回;我们必须与 Rmd 一起工作,但我并不真正熟悉该工具......所以任何帮助将不胜感激! 我的问题是,我想在 ggplot 上显示比利时多年来 GDP 的演变。这是我的数据的样子(您可以看到时间列是按季度组织的 [![Data to work with][1]][1]。我这样编码:

ggplot(data = PIB, aes(x=PIB$Time, y=PIB$Belgium, group=1))  + geom_line() + labs(x="Time", y="Belgian PIB")

这是我的输出:

[![ggplot进化图][2]][2]

除了 X 轴外,我对图表的外观非常满意。我在许多平台上在线查看,但我终究无法弄清楚如何组织时间轴。专栏的格式真的让我失望。我希望显示在线 4/5 时间戳,这样 reader 就可以理解从 2001 年到 2021 年的演变,以及 GDP 每个季度都在变化。

我知道这可能是一个愚蠢的问题,但欢迎任何帮助! [1]: https://i.stack.imgur.com/XvYNW.png [2]: https://i.stack.imgur.com/1f1Ll.png

您必须将时间列从字符向量转换为时间。

library(zoo)
PIB$Time = as.yearqtr(PIB$Time,format="%YQ%q")
PIB$Time = as.Date(PIB$Time)

然后试试 ggplot。

将时间转换为 yearqtr class 并与 scale_x_yearqtr 一起使用。如果默认值不是您想要的,请参阅 ?scale_x_yearqtr 查看其各种参数。

请注意 标签页顶部的信息,特别是向 SO 提出的 R 问题应以文本形式提供输入,以便其他人可以将其复制并粘贴到他们的会话中。如果不重新输入图像,就无法轻松使用图像。在没有的情况下,我使用了最后注释中显示的可重现输入。使用其中任何一个:

library(ggplot2)
library(zoo)

# 1
qplot(as.yearqtr(Time), Belgium, data = PIB, geom = "line", xlab = "") +
  scale_x_yearqtr()

# 2 - will default to scale_x_yearqtr even if not specified
qplot(as.yearqtr(Time), Belgium, data = PIB, geom = "line", xlab = "")

# 3 - convert to zoo series and plot that
Belgium <- read.zoo(PIB, FUN = as.yearqtr)
autoplot(Belgium) + xlab("")

备注

PIB <-
structure(list(Time = c("2001Q1", "2001Q2", "2001Q3", "2001Q4", 
"2002Q1", "2002Q2", "2002Q3", "2002Q4"), Belgium = 1:8), 
class = "data.frame", row.names = c(NA, -8L))