Balkendiagramme sind ein grundlegendes Werkzeug in der Datenvisualisierung und werden verwendet, um Werte über verschiedene Kategorien hinweg zu vergleichen. Sie stellen Daten mit rechteckigen Balken dar, deren Länge proportional zu dem Wert ist, den sie repräsentieren.
In diesem Lab lernen Sie, wie Sie die Matplotlib-Bibliothek in Python zum Erstellen von Balkendiagrammen verwenden. Sie beginnen mit der Vorbereitung von Daten, erstellen dann sowohl vertikale als auch horizontale Balkendiagramme, passen deren Erscheinungsbild mit Farben an und fügen schließlich eine Legende hinzu, um Ihr Diagramm informativer zu gestalten. Alle Diagramme werden durch Schreiben von Python-Skripten erstellt und die Diagramme als Bilddateien gespeichert, die Sie dann direkt in der LabEx-Umgebung anzeigen können.
Kategorien- und Werte-Listen vorbereiten
In diesem Schritt beginnen Sie mit der Einrichtung der Basisdaten für unser Balkendiagramm. Ein Balkendiagramm benötigt zwei Hauptkomponenten: eine Liste von Kategorien für die Achse und eine entsprechende Liste von numerischen Werten, die die Größe der Balken bestimmen.
Wir verwenden einen einfachen Datensatz, der monatliche Verkaufszahlen darstellt. Öffnen Sie zuerst die Datei main.py im Verzeichnis ~/project über den Dateiexplorer auf der linken Seite.
Fügen Sie nun den folgenden Python-Code zur Datei main.py hinzu. Dieser Code importiert die notwendige Matplotlib-Bibliothek und definiert unsere Daten.
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
Lassen Sie uns diesen Code aufschlüsseln:
import matplotlib.pyplot as plt: Diese Zeile importiert das pyplot-Modul aus der matplotlib-Bibliothek und gibt ihm den üblichen Alias plt. Wir werden plt verwenden, um Plotting-Funktionen aufzurufen.
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']: Diese Liste enthält die Beschriftungen für unsere x-Achse. Jeder String repräsentiert eine Kategorie.
values = [320, 450, 500, 480, 600]: Diese Liste enthält die numerischen Daten, die jeder Kategorie entsprechen. Zum Beispiel betragen die Verkäufe für 'Jan' 320.
Nachdem Sie den Code hinzugefügt haben, speichern Sie die Datei main.py. Im nächsten Schritt verwenden wir diese Daten, um unser erstes Balkendiagramm zu erstellen.
Vertikales Balkendiagramm mit plt.bar() erstellen
In diesem Schritt verwenden Sie die vorbereiteten Daten, um ein vertikales Balkendiagramm zu erstellen. Die Hauptfunktion dafür ist plt.bar(). Diese Funktion nimmt die Kategorien für die x-Achse und ihre entsprechenden Werte für die y-Achse entgegen, um die Balken zu zeichnen.
Fügen Sie die folgenden Codezeilen am Ende Ihrer Datei main.py hinzu. Dieser neue Code generiert das Diagramm, fügt Beschriftungen und einen Titel hinzu und speichert es als Bilddatei.
## Create the bar chart
plt.bar(categories, values)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')
## Save the plot to a file
plt.savefig('/home/labex/project/vertical_bar_chart.png')
print("Vertical bar chart saved as vertical_bar_chart.png")
Hier ist eine Erklärung des neuen Codes:
plt.bar(categories, values): Dies ist die Kernfunktion, die das Balkendiagramm erstellt. Sie ordnet die categories-Liste der x-Achse und die values-Liste der Höhe der Balken auf der y-Achse zu.
plt.title(), plt.xlabel(), plt.ylabel(): Diese Funktionen fügen dem Diagramm einen Titel und den x- bzw. y-Achsen Beschriftungen hinzu, was das Verständnis des Diagramms erleichtert.
plt.savefig(...): Da wir uns in einer Nicht-GUI-Umgebung befinden, können wir das Diagramm nicht direkt mit plt.show() anzeigen. Stattdessen speichert plt.savefig() das generierte Diagramm in einer Datei. Wir speichern es als vertical_bar_chart.png im Verzeichnis ~/project.
Führen Sie nun Ihr Skript im Terminal aus:
python3 main.py
Sie sollten die folgende Ausgabe sehen:
Vertical bar chart saved as vertical_bar_chart.png
Eine neue Datei namens vertical_bar_chart.png wird in Ihrem Dateiexplorer erscheinen. Doppelklicken Sie darauf, um Ihr erstes Balkendiagramm anzuzeigen!
Horizontales Balkendiagramm mit plt.barh() erstellen
In diesem Schritt lernen Sie, wie Sie ein horizontales Balkendiagramm erstellen. Dies ist nützlich, wenn Sie lange Kategorienamen haben, die sich in einem vertikalen Diagramm überlappen könnten. Matplotlib stellt zu diesem Zweck die Funktion plt.barh() zur Verfügung, die ähnlich wie plt.bar() funktioniert, aber die Balken horizontal zeichnet.
Ändern Sie Ihre Datei main.py, um plt.barh() anstelle von plt.bar() zu verwenden. Beachten Sie, dass bei plt.barh() die Parameter y (Kategorien) und width (Werte) sind. Wir müssen auch xlabel und ylabel vertauschen.
Ersetzen Sie den Plotting-Abschnitt Ihrer Datei main.py durch den folgenden Code:
## Create the horizontal bar chart
plt.barh(categories, values)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Sales ($)')
plt.ylabel('Month')
## Save the plot to a file
plt.savefig('/home/labex/project/horizontal_bar_chart.png')
print("Horizontal bar chart saved as horizontal_bar_chart.png")
Die vollständige main.py sollte nun wie folgt aussehen:
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
## Create the horizontal bar chart
plt.barh(categories, values)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Sales ($)')
plt.ylabel('Month')
## Save the plot to a file
plt.savefig('/home/labex/project/horizontal_bar_chart.png')
print("Horizontal bar chart saved as horizontal_bar_chart.png")
Führen Sie nun das aktualisierte Skript im Terminal aus:
python3 main.py
Sie werden diese Ausgabe sehen:
Horizontal bar chart saved as horizontal_bar_chart.png
Überprüfen Sie Ihr Projektverzeichnis auf die neue Datei horizontal_bar_chart.png und öffnen Sie sie, um Ihr horizontales Balkendiagramm anzuzeigen.
Balkenfarben mit dem Parameter 'color' anpassen
In diesem Schritt verbessern Sie Ihr Balkendiagramm durch Hinzufügen von Farben. Matplotlib ermöglicht es Ihnen, die Farbe der Balken einfach über den Parameter color in der Funktion plt.bar() oder plt.barh() zu ändern. Sie können eine einzelne Farbe für alle Balken festlegen oder eine Liste von Farben bereitstellen, um jeden Balken individuell einzufärben.
Kehren wir zum vertikalen Balkendiagramm zurück und geben jedem Balken eine andere Farbe. Ändern Sie Ihre Datei main.py, um eine Liste von Farben einzufügen und diese an die Funktion plt.bar() zu übergeben.
Ihre Datei main.py sollte wie folgt aktualisiert werden:
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
colors = ['skyblue', 'lightgreen', 'salmon', 'gold', 'orchid']
## Create the bar chart with custom colors
plt.bar(categories, values, color=colors)
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')
## Save the plot to a file
plt.savefig('/home/labex/project/colored_bar_chart.png')
print("Colored bar chart saved as colored_bar_chart.png")
In diesem Code:
Wir haben eine colors-Liste definiert, wobei jeder Farbname einem Balken im Diagramm entspricht.
Wir haben diese Liste an den color-Parameter in plt.bar(categories, values, color=colors) übergeben.
Wir haben den Ausgabedateinamen in colored_bar_chart.png geändert, um unsere vorherige Arbeit nicht zu überschreiben.
Führen Sie das Skript im Terminal aus:
python3 main.py
Die Ausgabe wird sein:
Colored bar chart saved as colored_bar_chart.png
Öffnen Sie die neu erstellte Datei colored_bar_chart.png, um Ihr farbenfrohes Balkendiagramm anzuzeigen.
Legende mit plt.legend() hinzufügen
In diesem letzten Schritt lernen Sie, wie Sie Ihrem Diagramm eine Legende hinzufügen. Eine Legende ist entscheidend, um zu erklären, wofür verschiedene Elemente in einem Diagramm stehen, insbesondere wenn Sie mehrere Datensätze plotten.
Um eine Legende hinzuzufügen, müssen Sie zuerst ein label für Ihre Plot-Daten angeben. Anschließend rufen Sie die Funktion plt.legend() auf, um die Legende im Diagramm anzuzeigen.
Ändern wir das Skript main.py, um ein Label für unsere Verkaufsdaten einzufügen und dann die Legende zu rendern.
Aktualisieren Sie Ihre Datei main.py mit dem folgenden Code:
import matplotlib.pyplot as plt
## Data for the bar chart
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May']
values = [320, 450, 500, 480, 600]
## Create the bar chart with a label
plt.bar(categories, values, color='skyblue', label='This Year Sales')
## Add title and labels
plt.title('Monthly Sales Data')
plt.xlabel('Month')
plt.ylabel('Sales ($)')
## Add the legend
plt.legend()
## Save the plot to a file
plt.savefig('/home/labex/project/bar_chart_with_legend.png')
print("Bar chart with legend saved as bar_chart_with_legend.png")
Hier sind die Änderungen:
In plt.bar() haben wir den Parameter label='This Year Sales' hinzugefügt. Dies weist unserem Datensatz einen Namen zu.
Wir haben den Aufruf plt.legend() hinzugefügt. Diese Funktion findet alle beschrifteten Elemente im Plot und erstellt eine Legendenbox.
Wir verwenden der Einfachheit halber eine einzelne Farbe 'skyblue' und speichern das endgültige Diagramm als bar_chart_with_legend.png.
Führen Sie das Skript ein letztes Mal aus:
python3 main.py
Sie sehen die abschließende Bestätigungsnachricht:
Bar chart with legend saved as bar_chart_with_legend.png
Öffnen Sie nun bar_chart_with_legend.png über den Dateiexplorer. Sie sehen Ihr Balkendiagramm mit einer Legende, die die Balken korrekt als "This Year Sales" identifiziert.
Zusammenfassung
Herzlichen Glückwunsch zum Abschluss dieses Labs! Sie haben erfolgreich die Grundlagen der Erstellung und Anpassung von Balkendiagrammen mit Matplotlib erlernt.
In diesem Lab haben Sie gelernt, wie Sie:
Daten (Kategorien und Werte) für die Darstellung vorbereiten.
Ein vertikales Balkendiagramm mit plt.bar() erstellen.
Ein horizontales Balkendiagramm mit plt.barh() erstellen.
Das Aussehen von Balken mit dem Parameter color anpassen.
Eine beschreibende Legende zu Ihrem Diagramm mit dem Parameter label und der Funktion plt.legend() hinzufügen.
Diese Fähigkeiten sind für jede Datenanalyse- oder Visualisierungsaufgabe unerlässlich. Sie können nun klare und effektive Balkendiagramme erstellen, um kategoriale Daten zu vergleichen. Experimentieren Sie gerne weiter mit anderen Matplotlib-Funktionen, um noch ausgefeiltere Plots zu erstellen.