[PYTHON] So fügen Sie dem Balkendiagramm von matplotlib einen Farbbalken hinzu

Einführung

Beim Balkenplotten mit matplotlib wird das Mappable-Objekt nicht zurückgegeben, sodass kein Farbbalken hinzugefügt werden kann.

>>> import matplotli.pyplot as plt
>>> plt.bar(0, 1)
<Container object of 1 artists>

Aber ich möchte irgendwie einen Farbbalken hinzufügen! Also habe ich es versucht.

0. Erstellen Sie die entsprechenden Daten

Lassen Sie uns zunächst die entsprechenden Daten erstellen. Hier werden Daten unter der Annahme erstellt, dass ein Diagramm erstellt wird, in dem Balken mit den Höhen 1 bis 3 gestapelt werden.

>>> import numpy as np
>>> dheight = np.random.choice([1, 2, 3], size=10)
>>> data = np.random.choice([1, 2, 3, 4, 5], size=dheight.size)
>>> print data
[1 1 1 4 5 2 1 2 2 4]

Dieses Mal färben wir entsprechend dem Wert der Variablen, die hier als Daten bezeichnet wird.

Nachdem wir die entsprechenden Daten erstellt haben, können wir endlich mit dem Zeichnen beginnen.

1. Erstellen Sie eine Normalisierungsfunktion

Zunächst werden in der Farbleiste von matplotlib Farben in der Farbkarte definiert, die den Werten zwischen 0 und 1 entsprechen. Wenn Sie also wie diesmal nach den Werten 1 bis 5 malen möchten, benötigen Sie eine Funktion (wie ein Objekt) zur Standardisierung. Eine Klasse namens Normalize kann es erstellen.

>>> from matplotlib.colors import Normalize
>>> norm = Normalize(vmin=data.min(), vmax=data.max())
>>> print norm(1), norm(2), norm(3)
0.0 0.25 0.5

Wie Sie durch die tatsächliche Eingabe eines Werts sehen können, wird dieses Objekt, wenn Sie diesem Objekt den Namen Norm geben, standardisiert, sodass vmin 0 und vmax 1 ist.

2. Erstellen eines zuordnbaren Objekts

Erstellen Sie als Nächstes ein zuordnbares Objekt. Dieses Mal erstellen wir eine Zuordnung nach Jet, die die Standardfarbkarte von matplotlib ist.

>>> from matplotlib.cm import ScalarMappable, get_cmap
>>> cmap = get_cmap('jet')
>>> mappable = ScalarMappable(cmap=cmap, norm=norm)
>>> mappable._A = []

3. Zeichnen Sie die Daten

Sobald Sie fertig sind, können Sie die Daten tatsächlich zeichnen.

>>> import matplotlib.pyplot as plt
>>> bottom = 0.
>>> for dh, v in zip(dheight, data):
...     plt.bar(0, dh, width=1, bottom=bottom, color=cmap(norm(v)))
...     bottom += dh
>>> cbar = plt.colorbar(mappable)

Da die diesmal aufgezeichneten Daten [1 1 1 4 5 2 1 2 2 4] sind, kann der Farbbalken problemlos gezeichnet werden, wenn sich die diesem Wert entsprechende Farbe in der Farbleiste befindet.

4. Beschriften

Zum Schluss ein Etikett anbringen und ausfüllen. Dieses Mal wird das Etikett angebracht, indem die Daten zwischen dem Minimalwert und dem Maximalwert in fünf Teile geteilt werden.

>>> cbar = plt.colorbar(mappable)
>>> ticks = np.linspace(norm.vmin, norm.vmax, 5)
>>> cbar.set_ticks(ticks)
>>> cbar.ax.set_yticklabels([str(s) for s in ticks])
[<matplotlib.text.Text at 0x7f36ac9b01d0>,
 <matplotlib.text.Text at 0x7f36ac9bb850>,
 <matplotlib.text.Text at 0x7f36ac98e550>,
 <matplotlib.text.Text at 0x7f36ac98ec50>,
 <matplotlib.text.Text at 0x7f36ac996390>]

5. Abgeschlossen!

Das ist das Ende.

>>> plt.show()

index.png

Sicher wurde die Farbe gezeichnet, die dem Wert von [1 1 1 4 5 2 1 2 2 4] entspricht.

Hilfreiche Seite

Recommended Posts

So fügen Sie dem Balkendiagramm von matplotlib einen Farbbalken hinzu
So unterdrücken Sie Anzeigefehler in matplotlib
Fügen Sie dem Balkendiagramm von matplotlib ein kumulatives Verhältnis hinzu
So ändern Sie die Editorfarbe in PyCharm
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
Wie man Autokorrelation und partielle Autokorrelation mit Python zeichnet
2D-Plot in Matplotlib
So entfernen Sie verstümmelte Zeichen im Matplotlib-Ausgabebild
So fügen Sie einer PDF-Datei Seitenzahlen hinzu (in Python)
So übergeben Sie die Backend-Einstellung von matplotlib mit einer Umgebungsvariablen
[Python] Wie zeichnet man mit Matplotlib ein Streudiagramm?
Stapelbares Barplot mit Matplotlib
Wie man in Python entwickelt
Hinzufügen neuer Daten (gerade Linien und Diagramme) mit matplotlib
Wie man zeichnet, indem man die Farbe des Diagramms kontinuierlich mit matplotlib ändert und einfach viele Legenden anordnet
[Python] Wie man PCA mit Python macht
Verwendung von Klassen in Theano
Wie man nüchtern mit Pandas schreibt
So sammeln Sie Bilder in Python
So ändern Sie die Farbe nur der mit Tkinter gedrückten Taste
Fügen Sie dem Matplotlib-Histogramm ein kumulatives Verhältnis hinzu
So aktualisieren Sie Spyder in Anaconda
Verwendung von SQLite in Python
So fügen Sie sudo hinzu, wenn Sie das Debug ausführen
Wie man Matplotlib auf Heroku ausführt
So konvertieren Sie 0,5 in 1056964608 auf einmal
Wie man CSS in Django reflektiert
Wie man Prozesse in großen Mengen abbricht
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python
So ändern Sie das Farbschema von vim
Verwendung von PubChem mit Python
So fügen Sie ein AWS EBS-Volume hinzu
So führen Sie TensorFlow 1.0-Code in 2.0 aus
Kontinuierliche Farbe mit Matplotlib-Streudiagramm
Umgang mit Japanisch mit Python
So melden Sie sich bei Docker + NGINX an
Anzeigen von Legendenmarkierungen in einem mit Python 2D-Plot
So rufen Sie PyTorch in Julia an
[Kleine Geschichte] So speichern Sie Matplotlib-Diagramme in einem Stapel mit Jupyter
Zeichnen von Daten einer Galaxie mit sichtbarem Licht mithilfe der OpenNGC-Datenbank in Python
So zeichnen Sie mit matplotlib ein Balkendiagramm, das mehrere Serien zusammenfasst
Verwendung berechneter Spalten in CASTable
So zeigen Sie den Fortschrittsbalken an (tqdm)
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Geben Sie die Farbe in der matplotlib 2D-Karte an
Dynamisches Definieren von Variablen in Python
So fügen Sie ein Paket mit PyCharm hinzu
So machen Sie R chartr () in Python
So zeichnen Sie ein Diagramm mit Matplotlib
So konvertieren Sie csv in tsv in CLI
So löschen Sie abgelaufene Sitzungen in Django
[Itertools.permutations] So löschen Sie eine Sequenz in Python
Verwendung von Google Test in C-Sprache
So implementieren Sie einen verschachtelten Serializer mit drf-flex-Feldern
So arbeiten Sie mit BigQuery in Python
So führen Sie Befehle mit einem Jupyter-Notebook aus
Wie man in GitPython '--gags fetch --tags' macht
So zeigen Sie die neunundneunzig Tabelle in Python an