散景服务器更新轴刻度

时间:2018-01-26 18:30:45

标签: python-3.x bokeh

当我尝试使用散景小部件更改y轴刻度时,没有任何反应。 但是,更新x范围确实有效。

def make_document(doc):
    df = some_pandas_dataframe()
    x = range(len(df))

    plot = figure(sizing_mode='scale_both')
    scatters = list()
    for l in labels:
        scatters.append(plot.step(x=x, y=df[l].sort_values(), alpha=0.2))

    x_range_slider = RangeSlider(start=0, end=int(math.ceil(df.shape[0]/1000) * 1000), value=(0, df.shape[0]), step=1, title='Wer hat es geschafft? Der Joshua')

    p_layout = layout(plot, x_range_slider)

    def update(attr, old, new):
        p_layout.children[0].x_range.start = x_range_slider.value[0]
        p_layout.children[0].x_range.end = x_range_slider.value[1]
        p_layout.children[0].y_scale = LogScale()
        p_layout.children[0].y_scale.update()

    for wdg in [x_range_slider]:
        wdg.on_change('value', update)

    doc.title = "Secret"
    doc.add_root(p_layout)

apps = {'/': Application(FunctionHandler(make_document))}
server = Server(apps, port=5005, allow_websocket_origin=['*'])
server.start()

在更新功能中,更改x范围确实有效。 为了更新y比例,我已经尝试将Formatter更改为LogTickFormatter。

是否可以更新比例以记录比例并返回?或者我是否需要重新加载整个情节?

1 个答案:

答案 0 :(得分:0)

  

是否可以更新比例以记录比例并返回?

我想说目前不支持动态更改绘图的比例。标度实际上只能在初始化时配置。如果你需要改变比例,我会切换到不同版本的情节。

也就是说,在Slider运动中改变比例似乎也很奇怪(比如某些按钮或切换,相反)。