У меня есть функция python
, которая генерирует список со случайными значениями.
После вызова этой функции я вызываю другую функцию, которая отображает случайные значения с помощью matplotlib
.
Я хочу, чтобы иметь возможность щелкнуть какой-то ключ на клавиатуре/мыши и выполнить следующее:
(1) новый список случайных значений будет re- сгенерирован
(2) будут построены значения из (1)
(заменив текущий график matplotlib
)
Значение, я хочу иметь возможность просматривать новые диаграммы одним нажатием кнопки. Как мне это сделать в python
?
Это действительно довольно легко сделать с matplotlib. Основная идея - использовать
plt.connect('button_press_event', onclick)
для вызова onclick
всякий раз, когда пользователь нажимает кнопку:
import matplotlib.pyplot as plt
import numpy as np
class Main(object):
def clear(self):
plt.clf()
def redraw(self):
self.clear()
plt.plot(self.data)
plt.title('100')
plt.text(50,0.85,'100')
plt.draw()
def on_click(self,event):
self.data=np.random.random(100)
self.redraw()
def run(self):
plt.figure()
plt.connect('button_press_event', self.on_click)
plt.show()
def __init__(self):
self.data=np.random.random(100)
if __name__=='__main__':
m=Main()
m.run()
print(m.data)
из кнопки импорта matplotlib.widgets
real_points = plt.axes(). scatter (x=xpts, y=ypts, alpha =.4, s=size, c = 'green', label = 'real data')
# Reset Кнопка
#rect = [слева, снизу, ширина, высота]
reset_axis = plt.axes([0,4, 0,15, 0,1, 0,04])
button = Button (ax=reset_axis, label = 'Reset', color = 'lightblue', hovercolor = '0.975')
def reset (событие):
real_points.remove()
button.on_clicked (reset)
plt.show()
plt.title
для размещения строки в верхней средней части графика (вне осей графика). Или вы можете использоватьplt.text
чтобы разместить строку где-нибудь внутри осей графика. Я изменил методredraw
чтобы показать оба.