[問題] matplotlib 該如何重畫並秀圖?

看板Python作者 (阿真)時間16年前 (2009/09/02 18:20), 編輯推噓0(007)
留言7則, 1人參與, 最新討論串1/1
我在python的idle下使用matplotlib 當setup好一些參數與畫圖的變數後 使用.draw()時 並沒有任何反應(畫面上沒出圖) 然後使用.show() 有反應並畫出了圖 於是我將圖關掉 再次輸入一些參數想畫第二張圖 再使用.show() 圖表那張就當掉了 上網找了一下資料 似乎是因為一個執行程式只能有一個mainloop(也就是.show()) 所以會當掉 想請問有沒有辨法在一個執行程式下 畫好幾次圖(或是說 秀好幾次圖 但參數不同) 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.63.180

09/02 19:26, , 1F
http://tinyurl.com/nvfzbp 這個範例一次秀3張圖
09/02 19:26, 1F
一個show() "一次"秀3張圖

09/02 19:28, , 2F
http://tinyurl.com/lmjhft 在1張圖裡顯示2張子圖
09/02 19:28, 2F
一個show() "一次"秀1張圖裡面有二個子圖的 上面的都只看到一次畫圖( show()的時候 ) 有的畫多 有的畫少 但都是一次畫的

09/02 19:32, , 3F
axes.cla() 可以清除plot, 然後再畫一次,
09/02 19:32, 3F

09/02 19:33, , 4F
FigureCanvas.draw() 顯示. 以上是用wxPython為backend
09/02 19:33, 4F
應該是這個了 draw() 可以秀圖 cla可以清除圖上的plot 不過不是很了解 以下是我的測試 from matplotlib import pyplot as plt plt.plot([1,2,3]) #應該有圖畫好了 只是沒有顯示出來 #我該如何請它現在就秀出來了?? #我使用plt.draw() 但是沒有任何反應 #於是我再用 plt.show() #畫出一張圖了 #之後python的idle 就在等那張圖的指令 沒辨法再輸入其他的指令 #我關掉那張圖 再輸入 plt.plot([4,5,6]) plt.show() #理論上不該再輸入一次show() #所以程式就當掉了 #我是希望能看到畫第一張圖 把他關掉後 同一個程式仍能再畫出第二張 (畫了"二次") #是不是我有哪邊觀念有問題?? 不過這樣的問題在qgis下的plugin(base on pyqt4) 由signal slot使用就沒有問題(可以show()很多次) 不知道是為什麼... ※ 編輯: KSJ 來自: 140.112.63.180 (09/02 23:37)

09/03 10:28, , 5F
因為我都是用wxPython做backend, 1張圖放在1個frame裡
09/03 10:28, 5F

09/03 10:29, , 6F
所以我只要每次多開1個frame, 就多1張獨立的圖
09/03 10:29, 6F

09/03 10:46, , 7F
tk也有backend支援-- http://tinyurl.com/klqxwo
09/03 10:46, 7F
文章代碼(AID): #1AdaRM94 (Python)
文章代碼(AID): #1AdaRM94 (Python)