我有一个每个时间点的值(每半小时更新一次)。
我将csv中的数据读入pandas数据帧:
import pandas as pd
headers = ['timestamp', 'pressure']
df = pd.read_csv('data.csv', header=None, names=headers)
数据类型为:
timestamp object
pressure int64
df本身看起来像这样:
timestamp pressure
0 2016-01-29 10:00:00 3
1 2016-01-30 22:30:00 2
2 2016-01-31 04:30:00 1
我想象它如下:
fig = TimeSeries(df, x = 'timestamp', y = 'pressure',builder_type='point'
,xscale="datetime")
它返回的是:
但是,如果我删除时间部分 - 它将正常工作:
我做错了什么?
答案 0 :(得分:1)
尝试设置webgl = False。
Bokeh 0.10中的webgl中有一个issue,当绘图放大时会导致跳跃数据点。它与渲染的舍入误差有关。我怀疑当前的行为与此有关,而且问题并没有完全解决。
试试这个最小的例子:
import numpy as np
import bokeh.plotting as bk
from datetime import datetime,timedelta
no_of_datapoints=10
base = datetime(2016, 2, 1, 9, 36, 0)
date_list = [base - timedelta(minutes=x) for x in range(0, no_of_datapoints)]
datapoints=np.arange(no_of_datapoints)
p=bk.figure(webgl=True,x_axis_type="datetime")
p.scatter(x=date_list,y=datapoints)
bk.show(p)
设置webgl = True给出了图表:
webgl = False给出了图表: