【发布时间】:2016-07-21 20:42:39
【问题描述】:
我正在尝试制作一个图表来描述一段时间内的人口。但是,日期不是按时间顺序排列的。在导入的 CSV 中,日期都是正确且有序的。但是,一旦运行下面的代码,显示的图表中的日期就不会按正确的顺序排列。开始日期在中间,结束日期在开始日期的左边。有什么办法可以解决吗?
sumc <- aggregate(ex2$C, bu=list(ex2$Date, ex2$Temp), FUN=sum)
colnames(sumc) <- c("Date", "Temperature", "Individuals")
ggplot(data= sumc, aes(x=Date, y=Individuals, group=Temperature, colour=Temperature )) + geom_line() + theme(plot.title = element_text(face="bold")
,plot.background = element_blank()
,panel.background = element_blank()
,panel.grid.major = element_blank()
,panel.grid.minor = element_blank()
,panel.border = element_blank()
,axis.line = element_line(colour="black", size=1)
,axis.text.x = element_text(colour="black", size=10)
,axis.text.y = element_text(color="black", size=8)
,axis.title.x = element_text(colour="black", size=10, face="bold", vjust=-.2)
,axis.title.y = element_text(color="black", size=10, face="bold", vjust=1.2)
,legend.text=element_text(size=8))
这张图片是一段时间内的人口。但正如您所见,x 轴上的日期不正确且关闭:
【问题讨论】:
-
Details 会有所帮助...是的顺序是什么?我立即想到的一件事是,系统可能将轴的数据类型感知为“字符串”,而不是“日期”。您看到的排序是否与这种(错误)解释一致?
-
订单从 2016 年 7 月 5 日开始,以此类推,直到 2016 年 7 月 20 日结束。我已经在另一个图表上成功地使用了这个代码并且它已经出现了正确的。我不确定这是否可能是由于该错误导致的误解,因为它在另一个图表上是成功的。
-
但我观察到排序 与我的假设一致(!) 日期字符串被解释为 字符串, 而不是 dates. 因此,我们不能排除您的“其他图表”的成功仅仅是偶然的可能性。 . .你在那个特定的输出中没有看到任何向你揭示 bug(!) 的东西。
-
问题是您的数据不属于
Date类,正如迈克所说,它只是用作字符串。如果您转换为Date类,一切都会好起来的。