J'ai un thread de tracé séparé avec matplotlib et multiprocessus. Maintenant, si j'effectue un zoom interactif sur la fenêtre, autoscale_view() ne fonctionne plus (corrigé avec autoscale()). Mais le bouton "home" de la boîte à outils ne fonctionne toujours pas: il semble appeler autoscale_view() et n'affiche pas la vue mise à jour mais l'ancienne vue (au point zoom avant). Exemple de code:Réinitialiser l'historique de la barre d'outils dans Matplotlib avec le backend Qt4Agg
import matplotlib
matplotlib.use("qt4agg")
from matplotlib import pyplot as plt
import multiprocessing
def reset_view():
plt.get
xdata = []
ydata = []
temp = 0
test_ax = plt.gca()
test_line, = plt.plot(xdata, ydata)
plt.show(block=False)
for i in range(10):
temp = temp+1
xdata.append(temp)
ydata.append(temp)
test_line.set_data(xdata, ydata)
test_ax.relim()
test_ax.autoscale(tight= False)
plt.show(block=False)
plt.pause(2)
plot_thread = multiprocessing.Process(target = reset_view, args =())
reset_view()
if __name__ == '__main__':
plot_thread.start()
Essayez d'effectuer un zoom avant pendant le traçage et d'appuyer sur le bouton principal après. Existe-t-il un moyen de rendre le bouton d'accueil utiliser autoscale() au lieu de autoscale_view() ou de réinitialiser & mettre à jour l'historique de la barre d'outils afin qu'il ne revienne pas aux anciennes vues?
P.s .: « Home » -bouton = reset Afficher l'original