r语言 - 我的图中x轴的顺序有问题



我的图中x轴的顺序有问题。

从央行网站Perú下载数据(按季度GDP)

library(jsonlite)
library(rstudioapi)
library(ggplot2)
library(data.table)
PBI <- "PN02635BQ"
URL3 <- paste0("https://estadisticas.bcrp.gob.pe/estadisticas/series/api/",
PBI,"/json/2018-1-1/2021-7-31")

使用json下载数据

l_json <- jsonlite::fromJSON(URL3)
dt_PBI <- data.table(l_json$periods)
sapply(dt_PBI,class)
dt_PBI[,values := round(as.numeric(values),4)]
colnames(dt_PBI)<- c("Quarter", "Millions")

正如你所看到的,这个图在x轴上是不顺序的。

ggplot(dt_PBI, aes(x=Quarter, y=Millions)) +
geom_point()

x轴没有顺序,因为您的字符列变成了一个因子,并按字母数字顺序排序。所以在你的例子中,t1.19;在"t2.18"之前排序。要解决这个问题,请使用library forcats并根据年份对因子进行排序。我把这篇文章单独分成一栏("年"),以说明这里完成了什么。

library(jsonlite)
library(rstudioapi)
library(ggplot2)
library(data.table)
library(forcats)
PBI <- "PN02635BQ"
URL3 <- paste0("https://estadisticas.bcrp.gob.pe/estadisticas/series/api/",
PBI,"/json/2018-1-1/2021-7-31")

l_json <- jsonlite::fromJSON(URL3)
dt_PBI <- data.table(l_json$periods)
sapply(dt_PBI,class)
dt_PBI[,values := round(as.numeric(values),4)]
colnames(dt_PBI) <- c("Quarter", "Millions")
dt_PBI$year <- substr(dt_PBI$Quarter, 4, 5)
dt_PBI$Quarter <- fct_reorder(dt_PBI$Quarter, dt_PBI$year, min)
ggplot(dt_PBI, aes(x=Quarter, y=Millions)) +
geom_point()

相关内容

  • 没有找到相关文章