Wie kann ich Text in die obere linke (oder obere rechte) Ecke einer Matplotlib-Figur einfügen, z. B. wo sich eine Legende oben links befindet, oder über die Handlung, aber in die obere linke Ecke? Wenn es sich beispielsweise um eine plt.scatter () handelt, wird etwas, das sich innerhalb des Quadrats der Streuung befindet, in der oberen linken Ecke platziert.
Ich möchte dies tun, ohne im Idealfall den Maßstab des zu plottenden Streudiagramms zu kennen, da es sich von Datensatz zu Datensatz ändert. Ich möchte nur, dass der Text ungefähr oben links oder ungefähr oben rechts ist. Bei der Positionierung vom Legendentyp sollte es ohnehin nicht mit Streudiagrammpunkten überlappen.
Vielen Dank!
text
undax.transAxes
) nicht dazu gehört.Antworten:
Sie können verwenden
text
.text
Koordinaten können relativ zur Achse angegeben werden, sodass die Position Ihres Textes unabhängig von der Größe des Diagramms ist:Es ist schwieriger, zu verhindern, dass der Text einen Punkt Ihrer Streuung stört. Die einfachere Methode besteht darin, y_axis (ymax in
ylim((ymin,ymax))
) auf einen Wert zu setzen, der etwas höher ist als die maximale y-Koordinate Ihrer Punkte. Auf diese Weise haben Sie immer diesen freien Platz für den Text.EDIT: hier hast du ein Beispiel:
Die Parameter ha und va legen die Ausrichtung Ihres Textes relativ zur Einfügemarke fest. dh. ha = 'left' ist eine gute Einstellung, um zu verhindern, dass ein langer Text aus der linken Achse austritt, wenn der Rahmen manuell verkleinert (verengt) wird.
quelle
from pylab import figure, text, scatter, show
Code in der Antwort wurde in einer Ipython-Konsole im Pylab-Modus ausgeführt, in der explizite Importe nicht erforderlich waren. Auf einer sauberen Umgebung müssen Sie das oben genannte importieren und machenshow()
, um die HandlungEine Lösung wäre, die
plt.legend
Funktion zu verwenden, auch wenn Sie keine tatsächliche Legende möchten. Sie können die Platzierung des Legendenfelds mithilfe desloc
Schlüsselworts festlegen. Weitere Informationen finden Sie auf dieser Website, aber ich habe auch ein Beispiel beigefügt, das zeigt, wie eine Legende platziert wird:Beachten Sie, dass sich
loc=2
die Legende in der oberen linken Ecke des Diagramms befindet. Und wenn sich der Text mit dem Plot überschneidet, können Sie ihn mithilfe von verkleinernlegend.fontsize
, wodurch die Legende kleiner wird.quelle