问题描述
我在 excel 中有数据,我想按时间顺序绘制,不幸的是,它确实按顺序显示。
library(tidyverse)
library(lubridate)
library(ggplot2)
OTCData <- file.choose()
OTC<- read.csv(OTCData,header=TRUE)
ggplot(data=OTC,aes(x=OTC$DATE,y=OTC$NotionalAmounts))+
geom_line()+
geom_line(aes(x = DATE,y = NotionalAmounts),color = "red",alpha = 0.6,size = 1,group =1) +
labs(x="Date",y="Amount in US$")+
ggtitle("Notional Amount Outstanding For OTC Derivatives For All Category")+
theme(panel.background = element_rect(fill="white",colour="white",size=0.5,linetype="solid",color="black"),plot.title = element_text(hjust = 0.5),panel.grid.minor = element_line(size = (0.2),colour="grey"),panel.grid.major = element_line(colour ="grey",size = (0.1)),axis.text.x=element_text(angle=60,hjust=1))
请任何人帮忙?
解决方法
我几乎可以肯定问题在于 DATE 列未被识别为日期,而是字符向量。
我建议您重新格式化 DATE 列。您正在使用 tidyverse,请尝试:
OTC <- OTC%>%
mutate(DATE = as.Date(DATE,format = "%d/%m/%y")
(顺便说一句,如果 excel 中的日期以 iso 格式 [即 yyyy-mm-dd] 存储,这甚至不会成为问题。这是一种明确的格式,不会将月份误认为是天,在这种情况下,即使 R 将它们视为字符而不是日期,也会正确绘制)