Je voudrais combiner le traçage interactif dans Matplotlib et l'interface de ligne de commande Cmd en python. Comment puis-je faire ceci? Puis-je utiliser le filetage? J'ai essayé ce qui suit:Comment combiner Cmd et Matplotlib en python
from cmd import Cmd
import matplotlib.pylab as plt
from threading import Thread
class MyCmd(Cmd):
def __init__(self):
Cmd.__init__(self)
self.fig = plt.figure()
self.ax = self.fig.add_subplot(1,1,1)
def do_foo(self, arg):
self.ax.plot(range(10))
self.fig.canvas.draw()
if __name__=='__main__':
c = MyCmd()
Thread(target=c.cmdloop).start()
plt.show()
Il ouvre une fenêtre graphique et je peux taper des commandes dans la console qui sont réellement exécutées. Lorsque la commande "foo" est exécutée, elle dessine dans la fenêtre graphique. Jusqu'à présent, tout va bien. Quand je rentre dans la console, cependant, la console semble être bloquée et il y a maintenant une nouvelle fenêtre de commande. Mais lorsque je clique dans la fenêtre graphique, la console affiche une nouvelle invite de commande et je peux entrer une nouvelle commande. Il semble que les deux boucles ne sont pas vraiment entrelacées ou quelque chose comme ça. Y a-t-il une meilleure façon, plus commune?
Veuillez éditer votre question. Lors de l'édition, veuillez lire les instructions pour le formatage sur le côté droit de la page. S'il vous plaît modifier votre code pour ressembler à du code. –
Comment ça ne marche pas? Quelle version de Python utilisez-vous? Quelle plateforme? Comment est défini Thread (vous ne semblez pas l'importer)? – robert
J'utilise Python 2.6 sous Linux. – Christian