如何简化 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
查看其各种参数。
请注意 r 标签页顶部的信息,特别是向 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))
这里是大三学生,我有一个计量经济学项目要在 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
查看其各种参数。
请注意 r 标签页顶部的信息,特别是向 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))