Matplotlib ist eine Python 2D-Plot-Bibliothek, die Grafiken in Publikationsqualität in verschiedenen Papierformaten und interaktiven Umgebungen auf verschiedenen Plattformen erstellen kann.
Im letzten Matplotlib-Datenvisualisierungs-Tutorial stellen wir vorwie manBalkendiagramme, Histogramme und Streudiagramme erstellt. Heute stellen wir Ihnen zwei weitere Arten von Diagrammen vor: Stapeldiagramme und Kreisdiagramme. Da diese beiden Diagramme sehr ähnlich sind, werden sie zusammen vorgestellt.
Gestapeltes Diagramm
Gestapeltes Diagramm wird verwendet, um die Beziehung von „Teilen zum Ganzen“ im Zeitverlauf darzustellen. Ein gestapeltes Diagramm ähnelt im Grunde einem Kreisdiagramm, nur dass es sich im Laufe der Zeit ändert.
Stellen wir uns eine Situation vor, in der wir 24 Stunden am Tag haben und sehen möchten, wie wir unsere Zeit verbringen. Wir unterteilen unsere Aktivitäten in: Schlafen, Essen, Arbeiten und Spielen.
Nehmen wir an, wir möchten es über einen Zeitraum von 5 Tagen verfolgen, dann sehen unsere anfänglichen Daten so aus:
import matplotlib.pyplot as plt days = [1,2,3,4,5] sleeping = [7,8,6,11,7] eating = [2,3,4,3,2] working = [7,8,7,2,2] playing = [8,5,7,8,13]
Daher enthält unsere X-Achse die Tagesvariable, die ist 1, 2, 3, 4 und 5. Die einzelnen Bestandteile des Datums bleiben dann in ihren jeweiligen Aktivitäten erhalten. Zeichne sie so:
plt.stackplot(days, sleeping,eating,working,playing, colors=['m','c','r','k']) plt.xlabel('x') plt.ylabel('y') plt.title('Interesting Graph\nCheck it out') plt.show()
Hier können wir, zumindest in Farbe, sehen, wie wir unsere Zeit verbringen. Das Problem ist, dass wir ohne Rückblick auf den Code nicht wissen, welche Farbe was ist. Das nächste Problem besteht darin, dass wir bei Polygonen den Daten keine „Beschriftungen“ hinzufügen können. Überall dort, wo es mehr als nur Linien gibt, mit einer Füllung oder einem gestapelten Diagramm wie diesem, können wir bestimmte Teile nicht automatisch markieren. Dies sollte Programmierer nicht aufhalten. Wir können das beheben:
import matplotlib.pyplot as plt days = [1,2,3,4,5] sleeping = [7,8,6,11,7] eating = [2,3,4,3,2] working = [7,8,7,2,2] playing = [8,5,7,8,13] plt.plot([],[],color='m', label='Sleeping', linewidth=5) plt.plot([],[],color='c', label='Eating', linewidth=5) plt.plot([],[],color='r', label='Working', linewidth=5) plt.plot([],[],color='k', label='Playing', linewidth=5) plt.stackplot(days, sleeping,eating,working,playing, colors=['m','c','r','k']) plt.xlabel('x') plt.ylabel('y') plt.title('Interesting Graph\nCheck it out') plt.legend() plt.show()
Was wir hier tun, ist, einige leere Zeilen zu zeichnen, ihnen die gleiche Farbe wie unser gestapeltes Diagramm zu geben und sie richtig zu beschriften. Wir geben ihnen außerdem eine Linienstärke von 5, damit die Linien in der Legende breiter erscheinen. Jetzt können wir leicht erkennen, wie wir unsere Zeit verbringen.
Kreisdiagramme
Kreisdiagramme ähneln gestapelten Diagrammen, außer dass sie sich auf einen bestimmten Zeitpunkt beziehen. Typischerweise werden Kreisdiagramme verwendet, um zu zeigen, wie ein Teil zu einem Ganzen beiträgt, normalerweise in %. Glücklicherweise kümmert sich Matplotlib um die Slice-Größe und alles andere, wir müssen nur den numerischen Wert angeben.
import matplotlib.pyplot as plt slices = [7,2,2,13] activities = ['sleeping','eating','working','playing'] cols = ['c','m','r','b'] plt.pie(slices, labels=activities, colors=cols, startangle=90, shadow= True, explode=(0,0.1,0,0), autopct='%1.1f%%') plt.title('Interesting Graph\nCheck it out') plt.show()
In plt.pie müssen wir das „Slice“ angeben, das die relative Größe jedes Teils darstellt. Anschließend geben wir eine Liste von Farben für die entsprechenden Slices an. Als nächstes können wir den „Startwinkel“ der Grafik festlegen. Dadurch können Sie überall mit dem Zeichnen beginnen. In unserem Beispiel haben wir einen 90-Grad-Winkel für das Kreisdiagramm gewählt, was bedeutet, dass das erste Segment eine vertikale Linie ist. Als nächstes haben wir die Möglichkeit, der Zeichnung einen Schatten in Zeichengröße hinzuzufügen, und dann können wir sogar „Explodieren“ verwenden, um ein Segment herauszuziehen.
Wir haben insgesamt vier Slices. Wenn wir also beim Explodieren keine Slices herausziehen möchten, übergeben wir 0,0,0,0. Wenn wir das erste Slice ziehen wollen, übergeben wir 0,1,0,0,0.
Schließlich verwenden wir autopct und entscheiden uns dafür, den Prozentsatz im Diagramm zu platzieren.
Das obige ist der detaillierte Inhalt vonSo zeichnen Sie gestapelte Diagramme und Kreisdiagramme mit Matplotlib. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!