Entfernen oder passen Sie den Rand des Rahmens der Legende mit matplotlib an

105

Beim Zeichnen eines Diagramms mit matplotlib:

  1. Wie entferne ich die Box der Legende?
  2. Wie ändere ich die Farbe des Rahmens des Legendenfelds?
  3. Wie entferne ich nur den Rand des Feldes der Legende?
Mattijn
quelle

Antworten:

194

Beim Zeichnen eines Diagramms mit matplotlib:

Wie entferne ich die Box der Legende?

plt.legend(frameon=False)

Wie ändere ich die Farbe des Rahmens des Legendenfelds?

leg = plt.legend()
leg.get_frame().set_edgecolor('b')

Wie entferne ich nur den Rand des Feldes der Legende?

leg = plt.legend()
leg.get_frame().set_linewidth(0.0)
Mattijn
quelle
3
Wie wäre es mit der OOP-Schnittstelle?
ifly6
29

Noch eine verwandte Frage, da ich ewig gebraucht habe, um die Antwort zu finden:

So machen Sie den Legendenhintergrund leer ( dh transparent, nicht weiß):

legend = plt.legend()
legend.get_frame().set_facecolor('none')

Warnung, Sie wollen 'none'(die Zeichenfolge). Nonebedeutet stattdessen die Standardfarbe.

Kevin J. Black
quelle
7
Ich denke, der bevorzugte Weg, dies zu tun, ist zu verwenden framealpha, dh plt.legend(framealpha=0.0). Das würde aber die Box einschließen
MT