我遇到了一個matplotlib問題,它在我第一次運行draw()
函數時只繪製了一條線。我的代碼是這樣的:matplotlib只能重繪一次
我有graphPanel.py:(脫光了要領)
class GraphPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
self.figure = Figure()
self.canvas = FigureCanvasWxAgg(self, -1, self.figure)
self.draw()
def draw(self, curves={}): #This creates the axis and
if not hasattr(self, "ax"): #plots all the lines in the curve dictionary
self.ax = self.figure.add_subplot(111)
self.ax.lines = []
for name, props in zip(curves.keys(), curves.values()):
x, y, col = props
line = self.ax.plot(x, y, color=col, lw=3)
幷包含在graphpanel嵌入整個界面,具有功能沿Main.py文件應該調用面板的draw()函數,併爲其提供包含一組曲線的字典。 問題是,當我這樣做時,它將完全忽略被清空的列表self.ax.lines
和plot()
調用並保持以前的狀態。
出於某種原因,它只能我第一次稱呼它,從類的初始化,因爲如果我在draw()
呼叫置於初始化把字典,點,它會完全繪製出來。
如果我再撥打draw()
,爲什麼不工作?