【问题标题】:Problem updating plot according to ipywidget FloatSlider根据 ipywidget FloatSlider 更新绘图的问题
【发布时间】: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


【解决方案1】:

我想,我刚刚找到了答案:

我忘了display(k, A)。现在可以了!

但奇怪的是,滑块出现了——即使没有显示命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 2018-10-23
    • 2022-06-28
    相关资源
    最近更新 更多