Python 在Jupyter笔记本中嵌入的Bokeh live plot中设置x轴限制

Python 在Jupyter笔记本中嵌入的Bokeh live plot中设置x轴限制,python,bokeh,jupyter,Python,Bokeh,Jupyter,我想更改x轴范围,作为jupyter中打印更新的一部分 用于绘制时间序列的“我的更新”函数(直线是多直线的一个实例): 但是,虽然这会使用新数据更新绘图,但实际上并没有按预期设置x轴限制。我试过了 然而,它实际上并没有更新我的情节。一个选项是对绘制的数据进行切片,但是如果用户缩小,我希望所有数据都可用。这花了我一点时间才弄清楚您所做的似乎是合理的!(为了更好地理解,我在邮件列表上问了这个问题) 简单地说,让它工作起来很简单 fig.x_range = Range1d(x.max() - wind

我想更改x轴范围,作为jupyter中打印更新的一部分

用于绘制时间序列的“我的更新”函数(直线是
多直线的一个实例)

但是,虽然这会使用新数据更新绘图,但实际上并没有按预期设置x轴限制。我试过了
然而,它实际上并没有更新我的情节。一个选项是对绘制的数据进行切片,但是如果用户缩小,我希望所有数据都可用。

这花了我一点时间才弄清楚您所做的似乎是合理的!(为了更好地理解,我在邮件列表上问了这个问题)

简单地说,让它工作起来很简单

fig.x_range = Range1d(x.max() - window_length, x.max())
push_notebook()

下面是一个完整的工作示例:

from ipywidgets import interact
import numpy as np

from bokeh.io import push_notebook
from bokeh.plotting import figure, show, output_notebook

x = np.linspace(0, 2*np.pi, 2000)
y = np.sin(x)

output_notebook()

p = figure(plot_height=300, plot_width=600, y_range=(-5,5))
p.line(x, y, color="#2222aa", line_width=3)

def update(range_max=6):
    p.x_range.end = range_max
    push_notebook()

show(p)

interact(update, range_max=(1,10))
笔记本在这里:

fig.x_range.start = x.max() - window_length
fig.x_range.end = x.max()
push_notebook()
from ipywidgets import interact
import numpy as np

from bokeh.io import push_notebook
from bokeh.plotting import figure, show, output_notebook

x = np.linspace(0, 2*np.pi, 2000)
y = np.sin(x)

output_notebook()

p = figure(plot_height=300, plot_width=600, y_range=(-5,5))
p.line(x, y, color="#2222aa", line_width=3)

def update(range_max=6):
    p.x_range.end = range_max
    push_notebook()

show(p)

interact(update, range_max=(1,10))