[PYTHON] Ich möchte Matplotlib zu einem dunklen Thema machen

Standardmäßig hat matplotlib einen rein weißen Hintergrund, wie in der Abbildung unten gezeigt. Wenn Sie ihn längere Zeit betrachten, werden Ihre Augen verletzt, daher möchte ich ihn in eine andere Farbe ändern. Ich habe gehört, dass Sie das voreingestellte Stylesheet verwenden können, daher werde ich aufschreiben, wie Sie es einfach verwenden können.

default_sin.png

import

python


import matplotlib.pyplot as plt

Liste der Stylesheets

python


plt.style.available

Sie können eine Liste der verfügbaren Stylesheets als Array abrufen. Der Inhalt des Arrays ist wie folgt.

python


['bmh',
 'classic',
 'dark_background',
 'fast',
 'fivethirtyeight',
 'ggplot',
 'grayscale',
 'seaborn-bright',
 'seaborn-colorblind',
 'seaborn-dark-palette',
 'seaborn-dark',
 'seaborn-darkgrid',
 'seaborn-deep',
 'seaborn-muted',
 'seaborn-notebook',
 'seaborn-paper',
 'seaborn-pastel',
 'seaborn-poster',
 'seaborn-talk',
 'seaborn-ticks',
 'seaborn-white',
 'seaborn-whitegrid',
 'seaborn',
 'Solarize_Light2',
 'tableau-colorblind10',
 '_classic_test']

Der schwarze ist cooler, also sieht der dark_background gut aus.

Stil anwenden

python


plt.style.use('dark_background')

Nachdem Sie den Stil zuerst in dieser einen Zeile angewendet haben, müssen Sie lediglich wie gewohnt ein Diagramm zeichnen oder ein Bild anzeigen.

Versuchen Sie, eine Sinuskurve zu zeichnen

In einem solchen Fall sind die Sinuskurve und der Marktpreis festgelegt. Zeichnen wir sie also und überprüfen sie.

python


import numpy as np

x = np.linspace(0, 2*np.pi, 200)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y)

dark_sin.png

finde das gut

Ich finde es jedoch etwas zu schwarz. Ich mache mir ein wenig Sorgen, dass der Dateiname dieses Bildes "dark_sin.png " lautet und es zu sündig ist.

Einfaches selbst erstelltes Stylesheet

Ich hatte nicht vor, mein eigenes Stylesheet zu erstellen, aber ich werde ein wenig damit spielen.

Sie finden den Ordner mit dem Stylesheet unter "Lib / site-packages / matplotlib / mpl-data / stylelib /" aus dem Python-Ordner. Darin befindet sich eine Datei mit dem Namen "dark_background.mplstyle". Öffnen. Der Inhalt ist wie folgt.

dark_background.mplstyle


# Set black background default line colors to white.

lines.color: white
patch.edgecolor: white

text.color: white

axes.facecolor: black
axes.edgecolor: white
axes.labelcolor: white
axes.prop_cycle: cycler('color', ['8dd3c7', 'feffb3', 'bfbbd9', 'fa8174', '81b1d2', 'fdb462', 'b3de69', 'bc82bd', 'ccebc4', 'ffed6f'])

xtick.color: white
ytick.color: white

grid.color: white

figure.facecolor: black
figure.edgecolor: black

savefig.facecolor: black
savefig.edgecolor: black


Wie Sie sehen können, ist es nicht so schwierig, nur die Farben werden jedem Element zugewiesen. Wenn Sie alle "Schwarzen" in dieser Datei durch ein etwas milderes Schwarz ersetzen, erhalten Sie wahrscheinlich das gewünschte Stylesheet. Schauen Sie sich die Farbcodeliste an und wählen Sie eine geeignete Farbe aus. Es sieht so aus, als ob "2e2e2e" genau richtig ist. Kopieren Sie diese Datei und ersetzen Sie "schwarz" durch "2e2e2e". Speichern Sie sie im selben Ordner mit einem Dateinamen wie "grey_background.mplstyle".

gray_background.mplstyle


# Set 2e2e2e background default line colors to white.

lines.color: white
patch.edgecolor: white

text.color: white

axes.facecolor: 2e2e2e
axes.edgecolor: white
axes.labelcolor: white
axes.prop_cycle: cycler('color', ['8dd3c7', 'feffb3', 'bfbbd9', 'fa8174', '81b1d2', 'fdb462', 'b3de69', 'bc82bd', 'ccebc4', 'ffed6f'])

xtick.color: white
ytick.color: white

grid.color: white

figure.facecolor: 2e2e2e
figure.edgecolor: 2e2e2e

savefig.facecolor: 2e2e2e
savefig.edgecolor: 2e2e2e


Wende deinen eigenen Stil an

Wenn Sie die Shell erneut öffnen und mit "plt.style.available" prüfen, wird "grey_background" neu hinzugefügt. Zeichnen Sie die Sinuskurve wie im Beispiel.

python


import numpy as np

x = np.linspace(0, 2*np.pi, 200)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y)

gray_sin.png

Jetzt ist es ziemlich grau.

Selbst wenn Sie Ihren eigenen Stil wie diesen anwenden möchten, ist es im Grunde genommen nicht sehr aufwendig, wenn Sie geringfügige Änderungen an Ihren Vorlieben vornehmen, indem Sie sich auf das voreingestellte Stylesheet beziehen.

Recommended Posts

Ich möchte Matplotlib zu einem dunklen Thema machen
Ich möchte ein Spiel mit Python machen
[Python] Ich möchte aus einer verschachtelten Liste einen Taple machen
Ich möchte manuell eine Legende mit matplotlib erstellen
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen
Ich möchte ein Klickmakro mit pyautogui (Wunsch) erstellen.
Ich möchte ein Klickmakro mit pyautogui (Outlook) erstellen.
Ich möchte eine schöne Ergänzung zu input () in Python hinzufügen
Ich möchte in der Einschlussnotation drucken
Ich möchte eine Python-Umgebung erstellen
Ich möchte ein Automatisierungsprogramm erstellen!
Ich habe eine Web-API erstellt
Ich möchte Matplotlib in PySimpleGUI einbetten
[Einführung] Ich möchte mit Python einen Mastodon-Bot erstellen! 【Anfänger】
Ich möchte eine Parameterliste aus CloudFormation-Code (yaml) erstellen.
Ich möchte einfach ein Rauschmodell erstellen
Ich möchte einen DataFrame in MSSQL einfügen
(Matplotlib) Ich möchte ein Diagramm mit einer in Pixel angegebenen Größe zeichnen
Ich möchte mit Python ein Fenster erstellen
Ich möchte mehrere Bilder mit matplotlib anzeigen.
Ich möchte keinen Codierungstest machen
Ich möchte Passungen aus meinem Kopf machen
Ich möchte eine Art von Implementierung erstellen, die angeschlossen werden kann
Ich las "Wie man ein Hacking Lab macht"
Ich möchte leicht einen leckeren Laden finden
Ich möchte C ++ - Code aus Python-Code erstellen!
Ich möchte mit Python in eine Datei schreiben
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Ich möchte eine Webanwendung mit React und Python Flask erstellen
Ich möchte eine Django-App auf Heroku hochladen
Ich möchte gleichzeitig einen Musik-Player erstellen und Musik ablegen
Ich habe versucht, einen "verdammt großen Literaturkonverter" zu machen.
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte einen Python-Generator viele Male iterieren
Ich möchte, dass DQN Puniki einen Homerun macht
100 Klopfen bei der Bildverarbeitung !! (021-030) Ich möchte eine Pause machen ...
Ich möchte einem Pandas-Datenrahmen eine group_id geben
Ich möchte schnell UUID generieren (Gedenknotiz) ~ Python Edition ~
Ich möchte mit einem Knopf am Kolben übergehen
Ich möchte mit verstärkendem Lernen einen Berg besteigen
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Ich möchte ein beliebtes Paket auf PyPi finden
Ich möchte eine Datei mit Python zufällig testen
Ich möchte einfach eine modellbasierte Entwicklungsumgebung erstellen
Ich möchte mit einem Roboter in Python arbeiten.
Ich möchte eine Zeichenkette mit Hiragana teilen
Ich möchte ein Paket von Php Redis installieren
Ich möchte automatisch eine Unternehmensgründungs-E-Mail senden
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte eine lokale Variable mit Lambda binden
Ich möchte einen Mox-Generator
Ich möchte SUDOKU lösen
Ich möchte einen Mox-Generator (2)
[Mac] Ich möchte einen einfachen HTTP-Server erstellen, auf dem CGI mit Python ausgeführt wird
Ich möchte eine Jupyter-Umgebung mit einem Befehl starten
[Python] Ich möchte einen gemeinsamen Satz zwischen numpy erhalten
Ich möchte viele Prozesse von Python aus starten
Ich möchte automatisch einen modernen Metal-Bandnamen generieren