如何加快在Bokeh中创建的图的页面加载速度?

时间:2018-11-19 18:28:45

标签: python python-3.x plot bokeh interactive

运行代码后,将打开该页面,并在13秒钟内显示空白页面,然后显示预期的图。

有没有办法加快速度? (13秒,用户明智的选择太长了)

代码在两列(2n循环)中生成44个图,不同参数(第1个循环)不同,然后不同刀具名称(第3个循环)

如果bokeh(不是合适的工具)会很高兴地开放,以听取一种绘制交互式图的方法,最好是使用python

这是代码:

dateparse = lambda x: pd.datetime.strptime(x, '%Y-%m-%dT%H:%M:%S')

df = pd.read_csv("LUSU.csv",parse_dates=['PM_START_DATE'], date_parser=dateparse)

df.head()
print("time elapsed: {:.2f}s".format(time.time() - start_time))
x = df['PM_START_DATE']
y = df['TASK_VALUE']
tool=df['ENTITY']
tool_list=df['ENTITY'].unique()
param_list=df['PARAMETER'].unique()
#
print("time elapsed: {:.2f}s".format(time.time() - start_time))
colors = itertools.cycle(Spectral11)
output_file('LUSU.html', mode="cdn")
for i in range(0,44,2):
    row = []
    for _ in range(2):
        p = figure(title=param_list[i], x_axis_label='date', y_axis_label='chart value', x_axis_type="datetime", toolbar_location="below")
        for j in range(len(tool_list)):
            df1=((df['PARAMETER']==param_list[i] )& (df['ENTITY']==tool_list[j] ))
            source = ColumnDataSource(data=dict(x=x.loc[df1], y=y.loc[df1], tool=tool.loc[df1]))
            p.line(x='x', y='y',legend='tool', source=source)
            p.scatter(x='x', y='y',legend='tool',size=10,color=next(colors), source=source)
        p.add_tools(HoverTool(tooltips=[("Entity", "@tool"), ("Chart Value", "@y{%0.2f}"), ("Date", "@x{%F}")], formatters={"x": "datetime", "y": 'printf'}))
        #p.xaxis.formatter = DatetimeTickFormatter(days=["%m/%d/%Y"])
        p.legend.location = "top_right"
        p.legend.click_policy = "mute"
        row.append(p)
        i = i + 1
    grid.append(row)

fig=layout(grid)
reset_output()

show(fig)

1 个答案:

答案 0 :(得分:0)

您可以尝试使用webGL加快速度。 这允许字形通过GPU渲染。

figure(title=param_list[i], x_axis_label='date', y_axis_label='chart value', x_axis_type="datetime", toolbar_location="below", output_backend="webgl")

更多信息:https://bokeh.pydata.org/en/latest/docs/user_guide/webgl.html。 有关大量散景的散景性能问题的进一步阅读,https://github.com/bokeh/bokeh/issues/6294