Ich habe ein gestapeltes Balkendiagramm mit matplotlib von Python erstellt und eine Datenbeschriftung hinzugefügt

Versuchen Sie, ein gestapeltes Balkendiagramm mit matplotlib zu zeichnen

Motivation

Beim Zeichnen eines gestapelten Balkendiagramms in Python wünschte ich mir, ich könnte die Datenbeschriftung wie Excel anzeigen, und als ich sie nachschlug, gab es keinen Artikel, in dem die Datenbeschriftung angezeigt werden konnte, und keinen Code, den ich kopieren und einfügen konnte. Also habe ich einen Code geschrieben, den ich kopieren und einfügen kann, wenn ich eine Datenbeschriftung in das gestapelte Balkendiagramm einfügen möchte.

Übrigens, wenn Sie nur ein gestapeltes Balkendiagramm zeichnen müssen, lesen Sie bitte ** Einfaches Zeichnen eines gestapelten Balkendiagramms ** am Ende dieser Seite.

importieren

Importieren Sie die folgenden Bibliotheken.


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

sns.set(font='IPAexGothic')

%matplotlib inline

Dummy-Daten erstellen

Dummy-Daten erstellten monatliche Verkaufsdaten für A-, B- und C-Filialen.


dataset = pd.DataFrame([[100, 200, 50], [300, 400, 600], [50, 300, 60]], 
                       columns=['Zweig A.', 'B Zweig', 'C Zweig'], 
                       index=['April', 'Kann', 'Juni'])
Zweig A. B Zweig C Zweig
April 100 200 50
Kann 300 400 600
Juni 50 300 60

Zeichnen Sie ein Balkendiagramm

Zeichnen wir zunächst ein einfaches Balkendiagramm. Zeichnen wir ein Balkendiagramm, das den monatlichen Umsatz jeder Filiale summiert. Es ist gut zu zeichnen, aber allein damit weiß ich nicht, wie viel Umsatz jeden Monat ist. .. .. Verwenden wir in einem solchen Fall ein gestapeltes Balkendiagramm!

fig, ax = plt.subplots(figsize=(10, 8))
ax.bar(dataset.columns, dataset.sum())
plt.show()

image.png

Zeichnen Sie ein gestapeltes Balkendiagramm

Gestapelte Balkendiagramme verwenden "ax.bar ()" auf dieselbe Weise wie beim Zeichnen von Balkendiagrammen. Geben Sie im Argument "bottom" zu diesem Zeitpunkt die y-Koordinate an, die die Basis des Balkens bildet. Sie haben jetzt ein gestapeltes Balkendiagramm! !! !! Immerhin möchte ich ein Datenetikett. Referenzseite: https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.axes.Axes.bar.html


fig, ax = plt.subplots(figsize=(10, 8))
for i in range(len(dataset)):
    ax.bar(dataset.columns, dataset.iloc[i], bottom=dataset.iloc[:i].sum())
ax.set(xlabel='Zweigname', ylabel='Der Umsatz')
ax.legend(dataset.index)
plt.show()

image.png

Anzeigen von Datenbeschriftungen in gestapelten Balkendiagrammen

Das Hauptthema ist endlich von hier. Die Datenbezeichnung wird eingefügt, indem die x- und y-Koordinaten mit plt.text () angegeben werden. Dann habe ich ein gutes Gefühl!


fig, ax = plt.subplots(figsize=(10, 8))
for i in range(len(dataset)):
    ax.bar(dataset.columns, dataset.iloc[i], bottom=dataset.iloc[:i].sum())
    for j in range(len(dataset.columns)):
        plt.text(x=j, 
                 y=dataset.iloc[:i, j].sum() + (dataset.iloc[i, j] / 2), 
                 s=dataset.iloc[i, j], 
                 ha='center', 
                 va='bottom'
                )
ax.set(xlabel='Zweigname', ylabel='Der Umsatz')
ax.legend(dataset.index)
plt.show()

image.png

Zeichnen Sie ein zu 100% gestapeltes Balkendiagramm

Wenn Sie ein gestapeltes Balkendiagramm verwenden, möchten Sie auch ein zu 100% gestapeltes Balkendiagramm verwenden. Verarbeiten Sie zunächst die Daten. Der folgende Code wandelt Verkäufe nach Filialen in Prozent um.


plot_dataset = pd.DataFrame(index = dataset.index)
for col in dataset.columns:
    plot_dataset[col] = round(100 * dataset[col] / dataset[col].sum(), 1)
Zweig A. B Zweig C Zweig
April 22.2 22.2 7.0
Kann 66.7 444. 84.5
Juni 11.1 33.3 8.5

Zeichnen Sie mit den konvertierten Daten ein zu 100% gestapeltes Balkendiagramm. Der Code ist der gleiche wie der vorherige Code. (Nur Variablen werden geändert.)


fig, ax = plt.subplots(figsize=(10, 8))
for i in range(len(plot_dataset)):
    ax.bar(plot_dataset.columns, 
           plot_dataset.iloc[i], 
           bottom=plot_dataset.iloc[:i].sum()
          )
    for j in range(len(plot_dataset.columns)):
        plt.text(x=j, 
                 y=plot_dataset.iloc[:i, j].sum()+(plot_dataset.iloc[i, j]/2), 
                 s=f'{plot_dataset.iloc[i, j]}%', 
                 ha='center', 
                 va='bottom'
                )
ax.set(xlabel='Zweigname', ylabel='Der Umsatz')
ax.legend(plot_dataset.index)
plt.show()

image.png

Zeichnen Sie einfach ein gestapeltes Balkendiagramm

Wenn Sie nur ein gestapeltes Balkendiagramm zeichnen möchten, können Sie es einfach mit dem folgenden Code zeichnen.

fig, ax = plt.subplots(figsize=(10, 8))
dataset.T.plot(kind='bar', stacked=True, ax=ax)
plt.show()

image.png

Recommended Posts

Ich habe ein gestapeltes Balkendiagramm mit matplotlib von Python erstellt und eine Datenbeschriftung hinzugefügt
Ich habe eine Klasse in Python erstellt und versucht, Enten zu tippen
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
[Grafikzeichnung] Ich habe versucht, ein mehrreihiges Balkendiagramm mit Matplotlib und Seaborn zu schreiben
Zeichnen Sie Daten einfach in Shell und Python
Ich habe ein Passwort-Tool in Python erstellt.
(Matplotlib) Ich möchte ein Diagramm mit einer in Pixel angegebenen Größe zeichnen
Lesen Sie Python-CSV-Daten mit Pandas ⇒ Graph mit Matplotlib
Ich habe eine Klasse in Python3 und Java geschrieben
Verwenden Sie libsixel, um Sixel in Python auszugeben und das Matplotlib-Diagramm an das Terminal auszugeben.
Erstellen Sie mit matplotlib ein gestapeltes Diagramm, das sowohl der positiven als auch der negativen Richtung entspricht
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
Ich möchte mit einem Roboter in Python arbeiten.
Ich habe versucht, LINE BOT mit Python und Heroku zu machen
Mit Python erstellte Beispieldaten
Zeichnen Sie Excel-Daten mit matplotlib (1)
Zeichnen Sie Excel-Daten mit matplotlib (2)
Versuchen Sie, Python in der mit pipenv erstellten Django-Umgebung auszuführen
Mathematik mit Python studieren: Zeichnen Sie mit matplotlib ein Sympy-Diagramm (Scipy-Diagramm)
Ich habe ein einfaches Tippspiel mit tkinter of Python gemacht
Lassen Sie uns ein PRML-Diagramm mit Python, Numpy und matplotlib erstellen.
Ich habe mit Tkinter of Python ein Puzzlespiel (wie) gemacht
Ich habe python3.4 in .envrc mit direnv geschrieben und es zugelassen, aber ich habe einen Syntaxfehler erhalten
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Python-Grafikhandbuch mit Matplotlib.
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)
Ich habe Maki Horikita und Kanna Hashimoto hinzugefügt und durch 2 durch Python geteilt
Ich habe mit Python eine Lotterie gemacht.
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Ich möchte mit matplotlib ein Diagramm mit Wellenlinien in der Mitte erstellen (ich möchte den Eindruck manipulieren).
Zeichnen Sie eine Aquarellillusion mit Kantenerkennung in Python3 und openCV3
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Hashing von Daten in R und Python
Ich habe mit PyQt5 und Python3 gespielt
Heatmap mit Dendrogramm in Python + Matplotlib
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Ich habe mit Python einen Daemon erstellt
Schreiben Sie ein gestapeltes Histogramm mit matplotlib
Verwenden wir Python, um die Häufigkeit der in einem Datenrahmen enthaltenen Binärdaten in einem einzelnen Balkendiagramm darzustellen.
Berechnen Sie die kürzeste Route eines Diagramms mit der Dyxtra-Methode und Python
So senden Sie ein visualisiertes Bild der in Python erstellten Daten an Typetalk
Ich habe Python ausprobiert! ] Titanic data edition_vol.1 (Balkendiagramm, Streudiagramm, Korrelationskoeffizient)
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
So zeichnen Sie mit matplotlib ein Balkendiagramm, das mehrere Serien zusammenfasst
Ich habe 0 Jahre Programmiererfahrung und fordere die Datenverarbeitung mit Python heraus
Zeichnen Sie die CSV von Zeitreihendaten mit einem Unixtime-Wert in Python (matplotlib).
Verbinden Sie Daten mit dem Hauptschlüssel (erforderlich) und dem Unterschlüssel (optional) in Python-Pandas
Erstellen Sie eine Python3-Umgebung mit pyenv auf einem Mac und zeigen Sie NetworkX-Diagramme an
Machen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (4. Datenstruktur)
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Datenpipeline-Aufbau mit Python und Luigi
Spiralbuch in Python! Python mit einem Spiralbuch! (Kapitel 14 ~)
[Python] Legen Sie den Diagrammbereich mit matplotlib fest
Ich habe ein Pay-Management-Programm in Python erstellt!
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Ich habe mit Python einen Zeichenzähler erstellt
Ich habe eine Heatmap mit Seaborn [Python] gezeichnet.
Ein Memo mit Python2.7 und Python3 in CentOS
Erstellt eine Reise von Darts mit Python (Nachrichten)