Ist es möglich, einen String als Legende in matplotlib hinzuzufügen

Ich produziere einige Plots in Matplotlib und möchte gern erklärenden Text für einige der Daten hinzufügen. Ich möchte einen String in meiner Legende als separates Legende Element über dem '0-10' Item haben. Weiß jemand, ob es einen möglichen Weg gibt, dies zu tun?

Bildbeschreibung hier eingeben

Dies ist der Code für meine Legende:
ax.legend(['0-10','10-100','100-500','500+'],loc='best')

2 Solutions collect form web for “Ist es möglich, einen String als Legende in matplotlib hinzuzufügen”

Sicher. ax.legend() hat ein zwei Argument-Formular, das eine Liste von Objekten (Handles) und eine Liste von Strings (Labels) akzeptiert. Verwenden Sie ein Dummy-Objekt (aka a "Proxy-Künstler" ) für Ihre zusätzliche Zeichenfolge. Ich wählte ein matplotlib.patches.Rectangle ohne Füllung und 0 linewdith unten, aber Sie könnten jeden unterstützten Künstler verwenden.

Zum Beispiel, sagen wir, Sie haben 4 Bar-Objekte (da Sie nicht den Code vergeben, um die Grafik zu generieren, kann ich es nicht genau reproduzieren).

 import matplotlib.pyplot as plt from matplotlib.patches import Rectangle fig = plt.figure() ax = fig.add_subplot(111) bar_0_10 = ax.bar(np.arange(0,10), np.arange(1,11), color="k") bar_10_100 = ax.bar(np.arange(0,10), np.arange(30,40), bottom=np.arange(1,11), color="g") # create blank rectangle extra = Rectangle((0, 0), 1, 1, fc="w", fill=False, edgecolor='none', linewidth=0) ax.legend([extra, bar_0_10, bar_10_100], ("My explanatory text", "0-10", "10-100")) plt.show() 

Beispielausgabe

Alternative Lösung, Art von schmutzig aber ziemlich schnell.

 import pylab as plt X = range(50) Y = range(50) plt.plot(X, Y, label="Very strait line") #Create empty plot with blank marker containing the extra label plt.plot([], [], ' ', label="Extra label on the legend") plt.legend() plt.show() 

Ausgabe

  • Wie importiere ich Daten von mongodb zu pandas?
  • Pandas TimeSeries diff () kehrt zur Serie zurück
  • Pandas Python Regex: Fehler: nichts zu wiederholen
  • ISIN-Funktion funktioniert nicht für Termine
  • Anhängen an einen leeren Datenrahmen in Pandas?
  • Pandas, dataframe, groupby, std
  • Ersetzen Sie einmalige Werte von pandas data-frame
  • Verschieben Sie nicht leere Zellen nach links in pandas DataFrame
  • Pandas _metadaten von DataFrame Persistenzfehler
  • Vlookup in Pandas mit beitreten
  • Zuordnung zu Containern in Pandas
  • Python ist die beste Programmiersprache der Welt.