J'ai un problème avec matplotlib où il trace seulement une ligne la première fois que j'ai exécuté la fonction draw()
que j'ai faite pour cela. Mon code est comme ceci:parcelles de matplotlib une fois seulement
Je graphPanel.py: (dépouillé à l'essentiel)
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)
Et le fichier Main.py qui contient toute l'interface où le graphpanel est intégré, ainsi que d'une fonction cela devrait appeler la fonction draw() du panneau, en lui donnant un dictionnaire contenant un ensemble de courbes. Le problème est, quand je fais cela, il ignorera complètement la liste self.ax.lines
étant vidé et l'appel plot()
et laisser tout comme il était auparavant.
Pour une raison quelconque, il ne fonctionne que la première fois que je l'appelle, de la initialisation de la classe, parce que si je mets un dictionnaire avec des points dans l'appel draw()
placé dans il initialisation les tracer parfaitement.
Pourquoi ça ne marche pas si j'appelle draw()
une autre fois?