ggplot2 timeseries在夜间绘制非有序值

时间:2018-05-02 10:55:28

标签: r ggplot2

a = c(22,23,00,01,02) #hours from 22 in to 2 in morning next day
b = c(4,8,-12,3,5) #some values
df = data.frame(a,b)

当我用ggplot2绘制这些数据时,它会对第一列a进行排序,但我不希望它被排序。

ggplot2中使用的代码是ggplot(df, aes(a,b)) + geom_line()

ggplot plot of timeseries and data

在这种情况下,X轴被排序,它们提供了错误的结果,如

小时0由值4组成,事实是小时22由值4组成

1 个答案:

答案 0 :(得分:1)

R需要以某种方式知道你在向量中提供的内容" a"是时候了。我稍微改变了你的向量,给R提供了必要的信息:

a = as.POSIXct(c("0122","0123","0200","0201","0202"), format="%d%H") 
# hours from 22 in to 2 in morning next day (as strings)
# the day is arbitrary but must be provided
b = c(4,8,-12,3,5) #some values
df = data.frame(a,b)
ggplot(df, aes(a,b)) + geom_line()

Plot with values ordered by correct time

你可以使用paste()自动将日期和小时粘合在一起(例如粘贴(第22天,sep =""))