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.

  • Erstellen eines Subplots anstelle von separaten Plots
  • Füllen Sie Länder in python basemap
  • Savefig PGF - RuntimeError: Kann kein Fensterumfang ohne Renderer erhalten
  • Matplotlib imshow Plots anders, wenn mit colormap oder RGB-Array
  • Plotten einer 2D-Wärmekarte mit Matplotlib
  • Getting ein RGBA-Array aus einem matplotlib Bild
  • Aktualisieren des Marker-Stils in Scatter-Plot mit Matplotlib
  • Fit eine Gauß-Funktion
  • 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.