Как сделать, чтобы менять значения в запущенной программе в окне mathplotlib?
Хочу сделать ввод из запущенной программы значения матожидания, дисперсии и кол-во точек на графике, однако реализации в 3D не нашел. Код программы, и пример который хочу получить ниже.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
from matplotlib.widgets import TextBox
def makeData():
x = np.linspace(19.5, 20, 1000) # координаты и количество точек
y = np.linspace(19.5, 20, 1000)
xgrid, ygrid = np.meshgrid(x, y)
z = np.random.normal(xgrid, ygrid)
r = .1 # радиус маски
x0, y0 = 19.7, 19.8 # центр маски
X, Y = np.meshgrid(x, y)
mask = (X - x0) ** 2 + (Y - y0) ** 2 < r ** 2
return xgrid, ygrid, z, X, Y, mask
##def submit(text):
## ydata = eval(text)
## l.set_ydata(ydata)
## ax.set_ylim(np.min(ydata), np.max(ydata))
## plt.draw()
if __name__ == '__main__':
x, y, z, X, Y, mask = makeData()
fig = plt.figure(figsize=(10, 10))
axes = plt.axes(projection="3d")
cmap = LinearSegmentedColormap.from_list('red_blue', ['b', 'y', 'r'], 256)
vvod=axes.plot_surface(x, y, z *(1 + mask * 0.75), color='#11aa55', cmap=cmap)
## text_box = TextBox(vvod, 'Evaluate', initial=x)
## text_box = TextBox(vvod, 'Evaluate', initial=y)
## text_box.on_submit(submit)
plt.show()
