按时间顺序绘制日期与使用 R 的数据

问题描述

我在 excel 中有数据,我想按时间顺序绘制,不幸的是,它确实按顺序显示

enter image description here

我的代码在这里

 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))

代码生成下面的图表,该图表未按日期的时间顺序绘制

enter image description here

请任何人帮忙?

解决方法

我几乎可以肯定问题在于 DATE 列未被识别为日期,而是字符向量。

我建议您重新格式化 DATE 列。您正在使用 tidyverse,请尝试:

OTC <- OTC%>%
mutate(DATE = as.Date(DATE,format = "%d/%m/%y")

(顺便说一句,如果 excel 中的日期以 iso 格式 [即 yyyy-mm-dd] 存储,这甚至不会成为问题。这是一种明确的格式,不会将月份误认为是天,在这种情况下,即使 R 将它们视为字符而不是日期,也会正确绘制)