Matplotlib在Jupyter Lab中使用ipywidgets时未能更新坐标轴范围
我在 Jupyter Lab 中使用 ipywidgets
和 matplotlib
,遇到了一些奇怪的情况。下面是我用的代码示例:
import matplotlib.pyplot as plt
import ipywidgets as widgets
%matplotlib widget
plt.ioff()
d = {
"a": [1,2,3],
"b": [2,3,4]
}
fig, ax = plt.subplots()
def update(change):
data = d[change["new"]]
ax.clear() # Clear the previous plot
ax.plot(data, data)
ax.set_xlim(min(data), max(data))
ax.set_ylim(min(data), max(data))
ax.figure.canvas.draw()
dropdown = widgets.Dropdown(options = list(d.keys()))
dropdown.observe(update, "value")
display(dropdown, fig.canvas)
update({"new": "a"})
我执行的步骤如下:
- 从下拉菜单中选择
b
- 移动图表
- 从下拉菜单中选择
a
- 点击图表上的“重置原始视图”按钮
结果不是把图表的范围恢复到选择 a
时的状态,而是出现了以下情况:
看起来 matplotlib
确实绘制了数据 [1,2,3]
,但似乎没有根据这些数据更新坐标轴的范围。
我真的希望这不是个bug,而是我做错了什么。有没有人见过这种情况?
0 个回答
暂无回答