Staplade stapeldiagram med Pythons Matplotlib

nov 17, 2021
admin

Som väntat är diagrammet svårt att läsa. Låt oss prova det staplade stapeldiagrammet och lägga till några justeringar.

För det första kan vi sortera värdena innan vi plottar, vilket ger oss en bättre känsla av ordning och gör det lättare att jämföra staplarna. Vi gör det med kolumnen ”Global försäljning” eftersom den har totalsumman.

## sort values
df_grouped = df_grouped.sort_values('Global_Sales')
df_grouped

Några av posterna i dataramen – Image by Author

Förr, för att bygga ett klustrade stapeldiagram, använde vi en plott för varje region där parametern för bredden och justeringar i x-axeln hjälpte oss att passa in på varje plattforms fyra områden.

För att plotta staplade stapeldiagram använder vi på samma sätt en plott för varje region. Den här gången använder vi parametern botten/vänster för att tala om för Matplotlib vad som kommer före de staplar vi ritar.

plt.bar(, )
plt.bar(, , bottom = )
plt.show()plt.barh(, )
plt.barh(, , left = )
plt.show()

Staplade staplar (vertikala/horisontella) – bild av författaren

Cool. Vi kan använda en slinga för att plotta staplarna genom att skicka en lista med nollor för parametern ”bottom” i den första uppsättningen och ackumulera följande värden för nästa regioner.

fields = 
colors =
labels = # figure and axis
fig, ax = plt.subplots(1, figsize=(12, 10))# plot bars
left = len(df_grouped) *
for idx, name in enumerate(fields):
plt.barh(df_grouped.index, df_grouped, left = left, color=colors)
left = left + df_grouped# title, legend, labels
plt.title('Video Game Sales By Platform and Region\n', loc='left')
plt.legend(labels, bbox_to_anchor=(), ncol=4, frameon=False)
plt.xlabel('Millions of copies of all games')# remove spines
ax.spines.set_visible(False)
ax.spines.set_visible(False)
ax.spines.set_visible(False)
ax.spines.set_visible(False)# adjust limits and draw grid lines
plt.ylim(-0.5, ax.get_yticks() + 0.5)
ax.set_axisbelow(True)
ax.xaxis.grid(color='gray', linestyle='dashed')plt.show()

Stacked Bar Chart – Image by Author

Skönt, det här är mycket mer läsbart än det förra.

Det är viktigt att komma ihåg syftet med det här diagrammet innan man försöker utvinna några insikter. Tanken här är att jämföra plattformarnas totala försäljning och förstå varje plattforms sammansättning.

Det är okej att jämföra totaler över fält och jämföra regioner inom en stapel. Att jämföra regioner från olika staplar kan däremot vara mycket missvisande.

I det här fallet kan vi jämföra NA-regionen över staplarna eftersom den har samma startpunkt för varje stapel, men det är inte så lätt att jämföra de andra. Ta till exempel X360, den har ett lägre värde för JP än PS2, men det är svårt att jämföra om det andra värdet är högre eller lägre än Wii.

Sammanjämningsvärde – bild av författaren
.

Ojämförbart värde – bild av författaren

Antag att vi ändrar stackens ordning, med ”Other Sales” som första stapel, och sorterar posterna efter ”Other Sales”. Det borde vara lättare att se vilket som är viktigast.

## sort values
df_grouped = df_grouped.sort_values('Other_Sales')fields =
colors =
labels =

Staplade staplade stapeldiagram, med tonvikt på kategorin Övriga – Bild av författaren

Det finns två viktiga element i den här visualiseringen, kategoriernas ordning i staplade staplade staplade staplade staplade staplade och radernas ordning.

Om vi vill betona en region kan vi sortera posterna med det valda fältet och använda det som den vänstra stapeln.

Om vi inte vill det kan vi sortera posterna efter totalsumman och ordna staplarna med de kategorier som har högre värden först.

Lämna ett svar

Din e-postadress kommer inte publiceras.