ggplot python 以每小时分辨率处理数周内的时间数据
ggplot python handling time data over many weeks at hourly resolution
我正在以小时分辨率绘制一系列道路的行程时间,数据为几周。
我可以使用 unix 时间绘图,但这不是很直观。这是 7 天的数据。
我使用一个函数来操作 time
字段以给出日期和时间:
def plot_time(time):
return time.strftime('%Y-%m-%d-%H')
但是,这会导致 ggplot 在尝试绘图时抛出值错误:
ValueError: invalid literal for float(): 2016-04-13-00
是否有更简单的显示日期和小时的方法?
或者,我可以在轴上绘制带有日期刻度的 unix 时间,但轴上有一些小时分辨率会很好。
我认为 scale_date 正是您所需要的。
正如 bVa 所说,POSIXct
是这里的关键。
ggplot(aes(x=as.POSIXct(epoch_time,origin="1970-01-01"),y=lambda)
一旦纪元时间被格式化为 POSIXct,就可以使用 scale_x_datetime()
我决定:
+ scale_x_datetime(breaks=date_breaks("1 day"))
我正在以小时分辨率绘制一系列道路的行程时间,数据为几周。
我可以使用 unix 时间绘图,但这不是很直观。这是 7 天的数据。
我使用一个函数来操作 time
字段以给出日期和时间:
def plot_time(time):
return time.strftime('%Y-%m-%d-%H')
但是,这会导致 ggplot 在尝试绘图时抛出值错误:
ValueError: invalid literal for float(): 2016-04-13-00
是否有更简单的显示日期和小时的方法?
或者,我可以在轴上绘制带有日期刻度的 unix 时间,但轴上有一些小时分辨率会很好。
我认为 scale_date 正是您所需要的。
POSIXct
是这里的关键。
ggplot(aes(x=as.POSIXct(epoch_time,origin="1970-01-01"),y=lambda)
一旦纪元时间被格式化为 POSIXct,就可以使用 scale_x_datetime()
我决定:
+ scale_x_datetime(breaks=date_breaks("1 day"))