首页 文章

ggplot2 timeseries在夜间绘制非有序值

提问于
浏览
0
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 回答

  • 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()自动将日期和小时粘合在一起(例如粘贴(day,22,sep =“”))

相关问题