Я пытаюсь изменить значения уровней цвета на контурном графике, заполненном matplotlib, с помощью ползунка. i контур f (x, y, z, np.linspace (a, b, n)), где ползунки будут управлять a и b и изменят уровни цвета графика при перемещении ползунка. Следующий код принимает данные, отформатированные в столбце, преобразует его в форму, требуемую контурным профилем, и затем реализуются ползунки. Это то, что я пробовал:Обновление уровней контурного графика с помощью слайдера matplotlib
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
data=np.genfromtxt('file.dat',skip_header=1)
len=np.sqrt(data[:,0].size)
x=np.reshape(data[:,0],(len,len))
y=np.reshape(data[:,1],(len,len))
z=np.reshape(data[:,3],(len,len))
l=plt.contourf(x,y,z,np.linspace(0,100,255))
axmax = plt.axes([0.25, 0.1, 0.65, 0.03]) #slider location and size
axmin = plt.axes([0.25, 0.15, 0.65, 0.03])
smax = Slider(axmax, 'Max',0, 100, 50) #slider properties
smin = Slider(axmin, 'Min', 0, 100, 0)
def update(val):
l.levels(np.linspace(smin.val,smax.val,255))#changing levels of plot
fig.canvas.draw_idle() #line that throws error
smax.on_changed(update)
smin.on_changed(update)
plt.show()
Большое количество ошибок Matplotlib выбрасываются при перемещении ползунка с соответствующими один быть «TypeError:» numpy.ndarray «объект не вызываемая», который выбрасывается по линии
fig.canvas.draw_idle()
Откуда: –