Matplotlib Legende Hintergrundfarbe

Gibt es da rcParams['legend.frameon'] = 'False' eine einfache Möglichkeit, den Legendenbereich Hintergrund mit einer gegebenen Farbe zu füllen. Genauer gesagt möchte ich, dass das Raster nicht auf dem Legendenbereich zu sehen ist, weil es den Text liest.

Das Keyword framealpha klingt wie das, was ich brauche, aber es ändert nichts.

 import matplotlib as mpl import matplotlib.pyplot as plt mpl.rcParams['legend.frameon'] = 'False' plt.plot(range(5), label = u"line") plt.grid(True) plt.legend(loc = best) plt.show() 

Ich habe auch versucht:

 legend = plt.legend(frameon = 1) frame = legend.get_frame() frame.set_color('white') 

Aber dann muss ich fragen, wie kann ich die Hintergrundfarbe ändern, während ich den Rahmen aufhält? Manchmal will ich es mit einer anderen Hintergrundfarbe als weiß. Und auch, gibt es eine Möglichkeit, die Farbe des Rahmens zu ändern? Mit dem obigen Code habe ich erwartet, die Farbe des Rahmens nur zu ändern, nicht den Hintergrund.

  • Matplotlib - So entfernen Sie eine bestimmte Linie oder Kurve
  • Vary Länge der Pfeile in Matplotlib Axes3D.quiver Plot
  • Finden Sie einen einfacheren Weg, um 2-d-Scatter-Daten in Gitter-Array-Daten zu gruppieren
  • Können matplotlib konturen mit pixelkanten übereinstimmen?
  • Karte diskreter Wert zu färben
  • Matplotlib: Setzen sowohl Haupt-und Neben-Zecken Kräfte gleichen x und y Skala
  • 2 Solutions collect form web for “Matplotlib Legende Hintergrundfarbe”

    Sie können die Kantenfarbe und die Gesichtsfarbe separat wie folgt einstellen:

     frame.set_facecolor('green') frame.set_edgecolor('red') 

    Es gibt mehr Informationen unter FancyBboxPatch hier .

    Zusätzlich zu Mollys Methode können Sie den Rahmen mit der Linienbreite ausschalten:

     frame.set_linewidth(0) 

    Ich habe diese Methode in einer kleinen Bequemlichkeit Funktion, die ich schrieb, um die Legende Frames aus dem gleichen Grund, den Sie zitieren verstecken. Die Funktion heißt adjust_legends im Modul print_targeted_plots von github .

    Python ist die beste Programmiersprache der Welt.