Czy możemy kontrolować, gdzie Matplotlib umieszcza dane na ekranie?Układ wielu figur przy użyciu Matplotlib
Chcę wygenerować cztery cyfry (w czterech osobnych oknach), które się nie nakładają.
Czy możemy kontrolować, gdzie Matplotlib umieszcza dane na ekranie?Układ wielu figur przy użyciu Matplotlib
Chcę wygenerować cztery cyfry (w czterech osobnych oknach), które się nie nakładają.
Nie używanie show() i samego Matplotlib. Najprostszym rozwiązaniem może być użycie savefig(..) i użycie ulubionej przeglądarki obrazów systemu operacyjnego. Jeśli potrzebujesz interaktywności z działkami, Matplotlib oferuje backends.
Najprostszym sposobem, w jaki to zrobię, jest utworzenie okna dla postaci w preferowanej aplikacji GUI, a następnie umieszczenie figury matplotlib w tym oknie. Istnieje kilka przykładów tego, jak to zrobić za pomocą różnych interfejsów GUI: here.
Próbki kodu mogą wyglądać na nieco skomplikowane, ale w większości przypadków to tylko niektóre linie.
Od IPython można wykonać następujące czynności:
figure()
get_current_fig_manager().window.wm_geometry("400x600+20+40")
Lub równoważnie w skrypcie Pythona:
import pylab as pl
pl.figure()
pl.get_current_fig_manager().window.wm_geometry("400x600+20+40")
pl.show()
Zauważ, że ten zakłada, że używasz backend TkAgg.
To jest dokładnie to, czego potrzebowałem. Dzięki. Dodałem dwa wiersze przed skryptem, aby uruchomić go na komputerze Mac: >>> import matplotlib; >>> matplotlib.use ('TkAgg') – David
+1: świetnie wiedzieć o (i lepiej niż moja sugestia). – tom10
Jeśli jest to właściwa odpowiedź, zaznacz ją jako zaakceptowaną. –
Możliwe jest również użycie interfejsu ipython z backend Qt, aby osiągnąć podobny rezultat:
import matplotlib
import pylab as pl
f1 = pl.figure()
f_manager = pl.get_current_fig_manager()
f_manager.window.move(600, 600)
pl.show()
Z f_manager zasadniczo musisz obiekt PyQt4, który pozwala modyfikować właściwości okna, jak chcesz.
Przydałoby się trochę więcej informacji. jaki system operacyjny? Zakładam, że nie wystarczy mieć czterech osi na jednej figurze. Ale dlaczego? Co sprawia, że cztery osobne okna są lepsze? Czy chcesz, aby działki były interaktywne/animowane? – Paul