我正在尝试使用滑块来更改颜色缩放的限制,即使用 set_clim(min,max) 函数。我想要它,以便两个滑块控制最小值和最大值的值,并在它们更改后重新绘制图形。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.widgets import Slider, Button
x=np.linspace(0,100,100)
y=np.linspace(0,100,100)
z=np.zeros((100,100))
for i in range (0,100):
for j in range (0,100):
z[i,j]=np.random.random()
fig, ax = plt.subplots()
plt.subplots_adjust(left=0.25, bottom=0.25)
l=plt.contourf(x,y,z)
axmax = plt.axes([0.25, 0.1, 0.65, 0.03])
axmin = plt.axes([0.25, 0.15, 0.65, 0.03])
smax = Slider(axmax, 'Max', 0, 1.0, valinit=1)
smin = Slider(axmin, 'Min', 0, 1.0, valinit=0)
def update(val):
fig.set_clim(smin.val,smax.val)
fig.canvas.draw_idle()
smax.on_changed(update)
smin.on_changed(update)
plt.show()
当我移动滑块时,上面的代码给了我“AttributeError: 'AxesSubPlot' object has no attribute 'set_clim'”,尽管它确实显示了初始未更改的图形。这是我第一次在 python 中使用小部件(或多或少是我第一次使用 python),所以很可能存在一些非常基本的误解。