Verschieben der vorhandenen Legende in Matplotlib 1.5.1

Ich habe Antworten auf eine vorherige Frage ohne Erfolg in Matplotlib 1.5.1.

Ich habe eine Seefigur:

import seaborn as sns %matplotlib inline import matplotlib.pyplot as plt import numpy as np tips = sns.load_dataset("tips") g = sns.jointplot("total_bill", "tip", data = tips[["total_bill", "tip"]].applymap(lambda x : -np.log10(x))) 

Das funktioniert nicht:

 g.ax_joint.legend(loc = 'lower right') 

So gut wie das:

 plt.legend(bbox_to_anchor=(1.05, 1), loc=4, borderaxespad=0.) /usr/local/lib/python3.4/dist-packages/matplotlib/axes/_axes.py:520: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots. warnings.warn("No labelled objects found. " 

Was ist der Weg, um eine vorhandene Legende zu finden, um in diesem Fall rechts zu senken?


Nicht eine elegante Lösung für jetzt ist:

 ll = g.ax_joint.get_legend().get_texts()[0]._text g.ax_joint.get_legend().remove() g.ax_joint.text( -12, -12, ll, fontsize=14) 

Allerdings glaube ich, dass es einen besseren Weg geben sollte.

One Solution collect form web for “Verschieben der vorhandenen Legende in Matplotlib 1.5.1”

Es gibt keine leichte (mit Strings wie 'lower right' ) Weg, um eine bestehende Legende zu verlagern, die mir bewusst ist.

Um die Griffe einer vorhandenen Legende zu erhalten, kannst du legend.legendHandles() . Für die Etiketten gibt legend.get_texts() Ihnen die legend.get_texts() . Um die eigentlichen Etiketten abzurufen, solltest du lieber .get_text() anstelle des privaten Attributs _text .

Im Folgenden werden die Griffe und Etiketten einer vorhandenen Legende auf eine neue kopiert. Andere Eigenschaften der Legende werden nicht kopiert.

 legend = g.ax_joint.get_legend() labels = (x.get_text() for x in legend.get_texts()) g.ax_joint.legend(legend.legendHandles, labels, loc='lower right') 

Ich habe vorher mit ax.get_legend_handles_labels() aber das wird in den Achsen suchen, nicht die Legende und ist in diesem Fall nicht sinnvoll.

  • Seaborn matplotlib: Kann nicht Fensterumfang ohne Renderer (RuntimeError)
  • Etikettierkarton in Seeabend mit Medianwert
  • Wie man einfache und effiziente Plots auf Python macht
  • Seaborn boxplots in gewünschten distanzen entlang der x-achse
  • Standardabweichung und Fehlerbalken in der Seaborn tsplot Funktion in Python
  • Wie man ein Mosaik-Plot in Matplotlib macht
  • Wie man mehrere Seaborn Jointplot in Subplot plottet
  • Uneinheitliche Handlung zwischen Matplotlib und Seaborn in Python
  • Wie kann ich die Schriftgröße mit Seaborn FacetGrid ändern?
  • Wie gebe ich ein Balkendiagramm aus matplotlib / seaborn mit einer int-Liste als Wert und einer String-Liste als x-Achse?
  • Fehler beim Importieren von Seaborn in ipython Notebook - Arbeiten in ipython
  • Python ist die beste Programmiersprache der Welt.