請我需要您的幫助來查找此代碼中的錯誤。我收到以下錯誤訊息:Error: Invalid input: date_trans works with objects of class Date only. 我認為問題出在scale_x_date引數上,但我無法解決。謝謝你。
library(ggplot2)
library(scales)
library(lubridate)
library(readxl)
entrada<- read_excel("R_codes_examples/entrada_turistas.xlsx", sheet = "mensal", col_types =
c("date", "numeric"))
ggplot(entrada, aes(x = entrada$`mes_ano`, y = entrada$`movimento_de_passageiros`))
geom_line( colour = "#0c4c8a")
scale_x_date(date_breaks = "6 months",labels = date_format("%b-%Y"),limits = c(as.Date("2006-
08-01"), NA))
scale_y_continuous(labels=function(n){format(n, scientific = FALSE)})
labs(y= "Movimento de Passageiros mensais 2006 a 2017 ", x = "Mês/Ano")
xlab("")
theme(axis.text.x=element_text(angle=60, hjust=1))
請在下面找到我的代碼的頭部:
> dput(head(entrada))
structure(list(mes_ano = structure(c(1136073600, 1138752000,
1141171200, 1143849600, 1146441600, 1149120000), tzone = "UTC",
class = c("POSIXct", "POSIXt")), movimento_de_passageiros =
c(119764, 100442, 114198,
124676, 113431, 115482)), row.names = c(NA, -6L), class =
c("tbl_df", "tbl", "data.frame"))
uj5u.com熱心網友回復:
有幾件事出了問題,是的,您的資料是正確的:)
- 更改
labels = date_format("%b-%Y")為date_labels = "%b-%Y" - 您的限制不能包含一個 NA 值,因為它需要在哪里停止?這不可能是一個無限的日期。
- 限制必須是
POSIXct格式 - 只是一些代碼風格的東西,
entrada$'mes_ano'不需要,因為你已經傳遞了資料,你可以只通過它的名字來呼叫 x 和 y 。
所以這里的固定代碼假設您使用 POSIXct 資料(包括時間):
ggplot(entrada, aes(x = mes_ano, y = movimento_de_passageiros))
geom_line(colour = "#0c4c8a")
scale_x_datetime(date_breaks = "6 months", date_labels = "%b-%Y", limits = c(as.POSIXct("2006-01-01"), as.POSIXct("2006-12-01")))
scale_y_continuous(labels=function(n){format(n, scientific = FALSE)})
labs(y= "Movimento de Passageiros mensais 2006 a 2017 ", x = "Mês/Ano")
xlab("")`
這是一個示例,如果您使用 as.Date 日期,請確保所有日期都具有相同的格式
ggplot(entrada, aes(x = as.Date(mes_ano), y = movimento_de_passageiros))
geom_line(colour = "#0c4c8a")
scale_x_date(date_breaks = "6 months", date_labels = "%b-%Y", limits = c(as.Date("2006-01-01"), as.Date("2006-12-01")))
scale_y_continuous(labels=function(n){format(n, scientific = FALSE)})
labs(y= "Movimento de Passageiros mensais 2006 a 2017 ", x = "Mês/Ano")
xlab("")
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/377739.html
