如何使用Bokeh datetimetickformatter来自定义刻度

时间:2017-01-10 22:49:07

标签: python bokeh

我是python的新手,我使用bokeh创建一个html文件,用于绘制一些时间序列数据。

我想将x轴刻度格式化为“DD / MM HH:SS”。我正在编写代码的简化版本:

from bokeh.plotting import figure, output_file, save, show
from bokeh.models import DatetimeTickFormatter
import datetime as dt
t=[dt.datetime(2017, 1, 9, 16, 14, 10),dt.datetime(2017, 1, 9, 16, 15, 20)]
Temp=[200,210]
output_file("Burner SPC test.html")
p1=figure(title="Tip1 TC", x_axis_label="Time", y_axis_label="Temp Diff", x_axis_type="datetime")
p1.line(t,Temp)
p1.xaxis.formatter=DatetimeTickFormatter(formats=dict(
days=["%??"],
months=["%??"],
hours=["%???"],
minutes=["%???"])) #not sure how to format here to get the desired output
show(p1)

非常感谢任何帮助。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

我使用"%m/%d %H:%M"为所有字段解决了它:月,日,小时,分钟:

p1.xaxis.formatter=DatetimeTickFormatter(formats=dict(
    days=["%m/%d %H:%M"],
    months=["%m/%d %H:%M"],
    hours=["%m/%d %H:%M"],
    minutes=["%m/%d %H:%M"]
))

最初我尝试使用"%m"数月,"%d"数天,"%H"数小时和"%M"分钟,但因为我希望所有这些都采用相同的格式秤,它们都需要配置相同。

答案 1 :(得分:0)

DateTimeTickFormatter不再期待字典(如bigreddot here所述)。在我的Bokeh版本(1.0.4)中,它通过删除“ formats = dict()”并提供格式字符串来工作。

p1.xaxis.formatter=DatetimeTickFormatter(days="%m/%d %H:%M",
months="%m/%d %H:%M",
hours="%m/%d %H:%M",
minutes="%m/%d %H:%M")

您可以同时做。对其全部使用相同的格式字符串,或使用单独的格式字符串。放大时会调整轴的格式。

from bokeh.plotting import figure, output_file, save, Show
from bokeh.models import DatetimeTickFormatter
import datetime as dt
import datetime as dt
t=[dt.datetime(2017, 1, 9, 16, 14, 10),dt.datetime(2017, 1, 10, 17, 15, 20)]
Temp=[200,210]
output_file("Burner SPC test.html")
p1=figure(title="Tip1 TC", x_axis_label="Time", y_axis_label="Temp Diff", x_axis_type="datetime")
p1.line(t,Temp)
p1.xaxis.formatter=DatetimeTickFormatter(days="%m/%d",
hours="%H",
minutes="%H:%M")
show(p1)