Matplotlib滑块无法移动

qlzsbp2j  于 2023-05-07  发布在  其他
关注(0)|答案(2)|浏览(176)

我尝试使用滑块动态更改图形上的参数,但滑块不会移动。我不能让它工作,既不是在蓝色的数据,也不是在Spyder。我在这里使用这个代码:

# Import libraries
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button
 
# Create subplot
fig, ax = plt.subplots()
plt.subplots_adjust(bottom=0.35)
 
# Create and plot sine wave
t = np.arange(0.0, 1.0, 0.001)
s = 5 * np.sin(2 * np.pi * 3 * t)
l, = plt.plot(t, s)
 
# Create axes for frequency and amplitude sliders
axfreq = plt.axes([0.25, 0.15, 0.65, 0.03])
axamplitude = plt.axes([0.25, 0.1, 0.65, 0.03])
 
# Create a slider from 0.0 to 20.0 in axes axfreq
# with 3 as initial value
freq = Slider(axfreq, 'Frequency', 0.0, 20.0, 3)
 
# Create a slider from 0.0 to 10.0 in axes axfreq
# with 5 as initial value and valsteps of 1.0
amplitude = Slider(axamplitude, 'Amplitude', 0.0,
                   10.0, 5, valstep=1.0)
 
# Create function to be called when slider value is changed
 
def update(val):
    f = freq.val
    a = amplitude.val
    l.set_ydata(a*np.sin(2*np.pi*f*t))
    
# Call update function when slider value is changed
freq.on_changed(update)
amplitude.on_changed(update)
 
# display graph
plt.show()

我错过什么了吗?
版本:matplotlib:3.5.1 python:3.9.12 Spyder版本:5.1.5无Python版本:3.9.12 64位Qt版本:5.9.7 PyQt5版本:5.9.2操作系统:Windows 10系统

f0brbegy

f0brbegy1#

Azure Databricks中只有4种类型的小部件可用,如下所示:
· text:在文本框中输入值。
· dropdown:从提供的值列表中选择一个值。
· combobox:文本和下拉菜单的组合。从提供的列表中选择一个值或在文本框中输入一个值。
· multiselect:从提供的值列表中选择一个或多个值。
在引用这个documentation之后,我尝试使用interact
但它给出的输出如下图所示.

更新-

要使其工作,您需要具有给定here的Databricks Runtime版本11.0及以上
然后可以使用ipywidgets
下面的示例代码将工作。

import ipywidgets as widgets

widgets.IntSlider(
    value=7,
    min=0,
    max=10,
    step=1,
    description='Test:',
    disabled=False,
    continuous_update=False,
    orientation='horizontal',
    readout=True,
    readout_format='d'
)

参考-https://ipywidgets.readthedocs.io/en/7.7.0/examples/Widget%20List.html

gj3fmq9x

gj3fmq9x2#

这是相当古老的,我注意到这个问题很常见,但只有在大量的谷歌搜索后才找到答案。
尝试在下面的import numpy中添加以下内容:

import matplotlib
matplotlib.use('TkAgg')

要显示图形更改,请执行以下操作:

plt.show(block=True)

相关问题