【发布时间】:2021-06-16 14:54:47
【问题描述】:
我正在尝试在 jupyter Notebook 中创建交互式 matplotlib.pyplot 绘图。我跟着this tutorial video。所以我的目标是通过更改ipywidgets FloatSlider 以交互方式更改绘图。我的代码与视频中的代码几乎完全相同,除了我正在绘制另一个数学函数并且我只有两个 FloatSlider。
我希望每次移动 FloatSlider 时情节都会相应更新(就像在视频中所做的那样)。但是什么也没发生。
这是我的代码:
我也为 matplotlib 尝试了不同的后端,但没有任何效果。
jupyter 版本:
非常感谢您提前提供的任何帮助!
P.S.:这是我的文本代码:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from ipywidgets import *
import ipywidgets as widgets
from IPython.display import display
%matplotlib notebook
#nbagg
print(widgets.__version__)
print(matplotlib.__version__)
x = np.linspace(0,30,31)
fig, ax = plt.subplots(1, figsize=(8, 4))
plt.suptitle('Weibull-Verteilung f(v)')
def update_plot(k, A):
"""
die Funtion plottet die Kurve erneut, wenn über
die slider ein Wert geändert wird
"""
# erstmal wieder die Zeichnung löschen
ax.clear()
# neuen Verlauf berechnen
f_x = k/A*(x/A)**(k-1)*np.exp(-(x/A)**k)
# und den neuen Verlauf plotten
ax.bar(x, f_x)
plt.show()
k = widgets.FloatSlider(min=1, max=3, value=2, description='k')
A = widgets.FloatSlider(min=1, max=20, value=6, description='A', position= 200)
# sobald einer der slider geändert wird, wird neu geplottet
widgets.interactive(update_plot, k=k, A=A)
【问题讨论】:
-
请将您的代码发布为文本,而不是屏幕截图。
-
抱歉,刚刚编辑过
标签: python-3.x matplotlib jupyter-notebook ipywidgets