2012-03-28 13 views
13

Ich habe ein Bild Plotten Skript von Matlab übersetzen/pylab matplotlib, und ich versuche, die gleiche Wirkung wie das Matlab Bild unten zu erreichen:Wie lasse ich meinen Matplotlib-Plot über die Achsen hinausgehen?

image generated using matlab

Wie Sie, die z sehen können, der Plots scheinen höher zu sein als die z-Reihenfolge des Rasters, so dass die Marker nicht von den Achsen verdeckt werden. Allerdings kann ich nicht herausfinden, einen Weg, das gleiche mit meinem matplotlib Bild zu tun:

eimage generated with matplotlib

Ich frage mich, ob es möglich ist, die gleiche Anzeige zu erhalten, ohne die Grenzen der y erhöhen zu müssen Achse.

+0

Ich bin sicher, dass Sie gute Gründe haben, die Matlab Verhalten zu bevorzugen, aber IMHO außerhalb der Achsen Zeichnung ist eher ein Fehler als eine Funktion. – joaquin

Antwort

30

Damit der Marker über die Achsen hinaus angezeigt wird, können Sie die Übersteuerung deaktivieren. Dies kann unter Verwendung des Schlüsselwortarguments im plot Befehl clip_on=False erfolgen.

Zum Beispiel:

import matplotlib.pyplot as plt 
plt.plot(range(5), range(5), 'ro', markersize=20, clip_on=False, zorder=100) 
plt.show() 

enter image description here

+0

+1 Ja! Ich bin ziemlich sicher, dass dies das ist, wonach OP gesucht hat, aber das war zumindest für mich nicht so klar - bis zu seinem Kommentar zu meiner (minderwertigen) Antwort. Hoffentlich wird OP dies akzeptieren. Danke fürs Schreiben. – bernie

+0

DANKE SOOOOO VIEL !!!!! Genau das habe ich gebraucht! – nay

+0

Großartig! Genau das, was ich brauchte. – bretcj7

1

Dies ist ein komplettes Beispiel dafür, wie die zorder kwarg verwenden: http://matplotlib.sourceforge.net/examples/pylab_examples/zorder_demo.html
Hinweis, dass eine höhere z-Ordnung zu einem im Vordergrund Graph-Elemente entspricht sein.

Für Ihre zweite Frage betrifft, haben einen Blick auf die figsize kwarg auf Instanzen der Figure Klasse: http://matplotlib.sourceforge.net/api/figure_api.html?highlight=figsize#matplotlib.figure.Figure

Wenn Sie auf Probleme stoßen, finden Sie einige Code schreiben, und wir werden in der Lage sein mehr- geben detaillierte Empfehlungen. Viel Glück.

+0

Danke, ich werde mir die 2 Links ansehen, die du aufgeschrieben hast. Für den Code denke ich, dass es ein Standardverhalten von matplotlib ist zu berücksichtigen, dass wenn der Punkt selbst (hier zum Beispiel 0.2; 0) sichtbar ist, es kein Problem ist, wenn der Marker um ihn herum nicht vollständig sichtbar ist. Das ist das Verhalten, das ich versuche zu ändern – nay

+0

@nay: es sieht aus wie Tom10 hat die Antwort auf Ihre Frage. Glückliche Kodierung! – bernie

+0

ja !!! Vielen Dank für die Hilfe =) – nay

0

Wenn Sie die Zeilen nacheinander zeichnen, ändern Sie einfach die Reihenfolge der Plotaufrufe, und das würde die z-Reihenfolge beheben.

+0

Danke für Ihre Antwort, tatsächlich, was ich versuche zu tun ist, um die x-Reihenfolge der Diagramme höher als die z-Reihenfolge des Rasters selbst, so dass die Marker (zum Beispiel (0,2; 0)) werden wie das Matlab-Bild vollständig sichtbar. – nay

Verwandte Themen