2009-11-05 15 views
8

Können wir kontrollieren, wo Matplotlib Zahlen auf dem Bildschirm platziert?Mehrere Abbildung Anordnung mit Matplotlib

Ich möchte vier Zahlen (in vier separaten Fenstern), die sich nicht überschneiden.

+0

Ein wenig mehr Info wäre hilfreich. Welches OS? Ich gehe davon aus, dass es nicht ausreicht, auf einer Figur vier Achsen zu haben. Aber warum? Was macht vier separate Fenster vorzuziehen? Brauchst du die Plots als interaktiv/animiert? – Paul

Antwort

0

Nicht mit show() und Matplotlib allein. Die einfachste Lösung besteht darin, savefig(..) zu verwenden und Ihren bevorzugten OS-Bildbetrachter zu verwenden. Wenn Sie Interaktivität mit den Plots benötigen, bietet Matplotlib backends an.

0

Der einfachste Weg, den ich kenne, ist das Fenster für die Figur in Ihrer bevorzugten GUI-Anwendung zu erstellen und dann die Matplotlib-Figur in dieses Fenster zu legen. Es gibt eine Reihe von Beispielen, wie diese Einbettung mit verschiedenen GUI-Frameworks here durchgeführt werden kann.

Die Codebeispiele können ein wenig kompliziert aussehen, aber es ist meistens ein Vorwand, wo Sie nur ein paar Zeilen ändern müssen.

8

Von IPython Sie Folgendes tun:

figure() 
get_current_fig_manager().window.wm_geometry("400x600+20+40") 

oder äquivalent in einem Python-Skript:

import pylab as pl 
pl.figure() 
pl.get_current_fig_manager().window.wm_geometry("400x600+20+40") 
pl.show() 

Beachten Sie, dass dies setzt voraus, Sie verwenden das TkAgg Backend.

+0

Genau das habe ich gebraucht. Vielen Dank. Ich habe die folgenden zwei Zeilen vor dem Skript hinzugefügt, damit es auf einem Mac funktioniert: >>> import matplotlib; >>> matplotlib.use ('TkAgg') – David

+0

+1: gut zu wissen (und besser als mein Vorschlag). – tom10

+2

Wenn es die richtige Antwort für Sie ist, markieren Sie diese bitte als akzeptiert. –

3

Es ist auch möglich, die IPython Schnittstelle mit dem Qt-Backend zu verwenden, um ein ähnliches Ergebnis zu erzielen:

import matplotlib 
import pylab as pl 
f1 = pl.figure() 
f_manager = pl.get_current_fig_manager() 
f_manager.window.move(600, 600) 
pl.show() 

Mit f_manager im Grunde Sie ein PyQt4 Objekt haben, dass Sie die Fenstereigenschaften ändern können, wie Sie möchten.

Verwandte Themen