我有一個python
函數生成一個隨機值的列表。python matplotlib - 再生圖嗎?
我調用此函數後,我調用另一個函數,使用matplotlib
繪製隨機值。
我希望能夠點擊鍵盤/鼠標的一些關鍵,並具有以下發生:
將重新產生(1)隨機值的一個新的列表
(2)將繪製從(1)
的值(替換當前的matplotlib
圖表)
含義,我希望能夠通過單擊按鈕查看新圖表。如何在python
中執行此操作?
我有一個python
函數生成一個隨機值的列表。python matplotlib - 再生圖嗎?
我調用此函數後,我調用另一個函數,使用matplotlib
繪製隨機值。
我希望能夠點擊鍵盤/鼠標的一些關鍵,並具有以下發生:
將重新產生(1)隨機值的一個新的列表
(2)將繪製從(1)
的值(替換當前的matplotlib
圖表)
含義,我希望能夠通過單擊按鈕查看新圖表。如何在python
中執行此操作?
確實是quite easy to do with 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()散射(。 x = xpts,y = ypts,alpha = .4,s = size,c ='green',label ='實際數據')
#復位按鈕
# RECT = [左邊,底部,寬度,高度]
reset_axis = plt.axes([0.4,0.15,0.1,0.04])
按鈕=按鈕(AX = reset_axis,標記= '復位',顏色=」 lightblue」,hovercolor = '0.975')
DEF復位(事件):
real_points.remove()
button.on_clicked(重置)
plt.show()
謝謝你。我會試一下!你還可以建議如何在圖表的頂部中間部分寫文字(比如數字100)? – user3262424 2011-06-13 17:49:38
@ user3262424:是;您可以使用'plt.title'在圖形的頂部中間部分放置一個字符串(繪圖軸以外)。或者,您可以使用'plt.text'在繪圖軸的任何位置放置一個字符串。我修改了'redraw'方法來顯示兩者。 – unutbu 2011-06-13 19:34:14
謝謝。你是最好的! – user3262424 2011-06-13 20:10:34