Erstellen eines Bar of Pie-Diagramms

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Tutorial lernen Sie, wie Sie mithilfe der Matplotlib-Bibliothek in Python einen "Bar of Pie"-Diagramm erstellen. Ein Bar of Pie-Diagramm ist eine Kombination aus einem Kreisdiagramm und einem gestapelten Balkendiagramm, wobei der erste Sektor des Kreises in ein Balkendiagramm ausgeweitet wird, das eine detailliertere Auflösung seiner Merkmale bietet. Dieses Diagramm eignet sich, wenn Sie die Verteilung eines gesamten Datensatzes anzeigen möchten und gleichzeitig bestimmte Kategorien hervorheben möchten.

Tipps für die virtuelle Maschine

Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicken Sie in der linken oberen Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Importieren der erforderlichen Bibliotheken

Bevor wir beginnen, das Diagramm zu erstellen, müssen wir die erforderlichen Bibliotheken importieren. In diesem Fall werden wir matplotlib.pyplot und numpy verwenden.

import matplotlib.pyplot as plt
import numpy as np

Definieren der Daten für das Diagramm

Als nächstes müssen wir die Daten definieren, die wir zum Erstellen des Diagramms verwenden werden. In diesem Fall werden wir die folgenden Daten verwenden:

## pie chart parameters
overall_ratios = [.27,.56,.17]
labels = ['Approve', 'Disapprove', 'Undecided']
explode = [0.1, 0, 0]

## bar chart parameters
age_ratios = [.33,.54,.07,.06]
age_labels = ['Under 35', '35-49', '50-65', 'Over 65']

Erstellen des Kreisdiagramms

Jetzt können wir das Kreisdiagramm erstellen. Wir beginnen, indem wir die Figur- und Achsenobjekte definieren:

## make figure and assign axis objects
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(9, 5))
fig.subplots_adjust(wspace=0)

Dann legen wir die Parameter für das Kreisdiagramm fest und zeichnen es:

## rotate so that first wedge is split by the x-axis
angle = -180 * overall_ratios[0]
wedges, *_ = ax1.pie(overall_ratios, autopct='%1.1f%%', startangle=angle,
                     labels=labels, explode=explode)

Erstellen des Balkendiagramms

Als nächstes erstellen wir das gestapelte Balkendiagramm. Wir beginnen, indem wir die Parameter für das Diagramm definieren:

## bar chart parameters
bottom = 1
width =.2

## Adding from the top matches the legend.
for j, (height, label) in enumerate(reversed([*zip(age_ratios, age_labels)])):
    bottom -= height
    bc = ax2.bar(0, height, width, bottom=bottom, color='C0', label=label,
                 alpha=0.1 + 0.25 * j)
    ax2.bar_label(bc, labels=[f"{height:.0%}"], label_type='center')

Verbinden des Kreisdiagramms und des Balkendiagramms

Schließlich verbinden wir das Kreisdiagramm und das Balkendiagramm mithilfe von ConnectionPatch:

## use ConnectionPatch to draw lines between the two plots
theta1, theta2 = wedges[0].theta1, wedges[0].theta2
center, r = wedges[0].center, wedges[0].r
bar_height = sum(age_ratios)

## draw top connecting line
x = r * np.cos(np.pi / 180 * theta2) + center[0]
y = r * np.sin(np.pi / 180 * theta2) + center[1]
con = ConnectionPatch(xyA=(-width / 2, bar_height), coordsA=ax2.transData,
                      xyB=(x, y), coordsB=ax1.transData)
con.set_color([0, 0, 0])
con.set_linewidth(4)
ax2.add_artist(con)

## draw bottom connecting line
x = r * np.cos(np.pi / 180 * theta1) + center[0]
y = r * np.sin(np.pi / 180 * theta1) + center[1]
con = ConnectionPatch(xyA=(-width / 2, 0), coordsA=ax2.transData,
                      xyB=(x, y), coordsB=ax1.transData)
con.set_color([0, 0, 0])
ax2.add_artist(con)
con.set_linewidth(4)

Zeige das Diagramm an

Schließlich zeigen wir das Diagramm an:

plt.show()

Zusammenfassung

In diesem Tutorial hast du gelernt, wie man mithilfe der Matplotlib-Bibliothek in Python ein "Bar of Pie"-Diagramm erstellt. Ein Bar of Pie-Diagramm ist nützlich, wenn du die Verteilung eines gesamten Datensatzes zeigen möchtest und gleichzeitig bestimmte Kategorien hervorheben möchtest. Du hast auch gelernt, wie man ConnectionPatch verwendet, um das Kreisdiagramm und das Balkendiagramm zu verbinden.