Ich mache ein Streudiagramm in matplotlib und muss den Hintergrund des tatsächlichen Diagramms in Schwarz ändern. Ich weiß, wie man die Gesichtsfarbe des Diagramms ändert, indem man:
fig = plt.figure()
fig.patch.set_facecolor('xkcd:mint green')
Mein Problem ist, dass dies die Farbe des Raums um das Diagramm ändert. Wie ändere ich die tatsächliche Hintergrundfarbe des Plots?
python
matplotlib
user1764386
quelle
quelle
ax.patch.set_facecolor('black')
(woax
ist die Achseninstanz ).fig.patch
ist der Figurenhintergrund undax.patch
ist der Achsenhintergrund.Antworten:
Verwenden Sie die
set_facecolor(color)
Methode desaxes
Objekts , die Sie auf eine der folgenden Arten erstellt haben:Sie haben zusammen eine Figur und eine Achse erstellt
Sie haben eine Figur erstellt und später die Achse (n)
Sie haben die Stateful-API verwendet (wenn Sie mehr als ein paar Zeilen ausführen und insbesondere wenn Sie mehrere Diagramme haben, erleichtern die oben genannten objektorientierten Methoden das Leben, da Sie auf bestimmte Abbildungen verweisen, auf bestimmten Achsen zeichnen und anpassen können entweder)
Dann können Sie verwenden
set_facecolor
:Als Auffrischung dafür, welche Farben sein können:
quelle
MethodNotFound
Eine Methode besteht darin, die Standardeinstellung für die Achsenhintergrundfarbe in Ihrem Skript manuell festzulegen (siehe Anpassen von matplotlib ):
Dies steht im Gegensatz zu der Methode von Nick T, mit der die Hintergrundfarbe für ein bestimmtes
axes
Objekt geändert wird. Das Zurücksetzen der Standardeinstellungen ist nützlich, wenn Sie mehrere verschiedene Diagramme mit ähnlichen Stilen erstellen und nicht ständig verschiedeneaxes
Objekte ändern möchten .Hinweis: Das Äquivalent für
Aus Ihrer Frage geht hervor:
quelle
Etwas wie das? Verwenden Sie das
axisbg
Schlüsselwort, umsubplot
:(Zugegeben, kein Streudiagramm und kein schwarzer Hintergrund.)
quelle
plt.subplot('111', axisbg='black')
den Plotbefehlen unter Windows.axis_bg
axis_bgcolor
wurden in Matplotlib 2.0.0 veraltet und in Matplotlib 2.2.0Wenn Sie bereits ein
axes
Objekt haben, wie in der Antwort von Nick T , können Sie es auch verwendenquelle
Ein Vorschlag in anderen Antworten ist zu verwenden
ax.set_axis_bgcolor("red")
. Dies ist jedoch veraltet und funktioniert unter MatPlotLib> = v2.0 nicht.Es gibt auch den Vorschlag zu verwenden
ax.patch.set_facecolor("red")
(funktioniert sowohl auf MatPlotLib v1.5 als auch auf v2.2). Während dies gut funktioniert, ist die Verwendung einer noch einfacheren Lösung für v2.0 +ax.set_facecolor("red")
quelle
ax.set_axis_bgcolor("black")
Ihrer Information , funktioniert unter Python v2.7.14 / MPL v1.5.1, aberax.set_facecolor()
nicht. Irgendwo zwischen MPL v1.5.1 und v2.2.0 wurde die richtige Funktion umgeschaltet.ax.patch.set_facecolor("red")
. Nuss von Matplotlib 2.0 auf dem empfohlenen Weg istax.set_facecolor
.Am einfachsten ist es wahrscheinlich, die Farbe beim Erstellen des Diagramms anzugeben:
oder
quelle
einfachere Antwort:
quelle