Stacked Bar Charts with Python’s Matplotlib

marras 17, 2021
admin

Kuten odotettua, kaaviota on vaikea lukea. Kokeillaan pinottua pylväsdiagrammia ja lisätään siihen muutama säätö.

Ensiksi voimme lajitella arvot ennen piirtämistä, jolloin saamme paremman järjestyksen ja pylväiden vertailu on helpompaa. Teemme näin ”Global Sales” -sarakkeella, koska siinä on kokonaissumma.

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

Joitakin tietuekehyksen tietueita – Kuva kirjoittaja

Viime aikoina käytimme ryhmitellyn pylväsdiagrammin rakentamiseen kunkin alueen kuvaajaa, jossa leveysparametrin ja x-akselin säätöjen avulla saatoimme sovittaa kutakin alustan neljää aluetta.

Toisella tavalla pinottujen pylväskaavioiden piirtämisessä käytämme kunkin alueen piirtoa. Tällä kertaa käytämme bottom/left-parametria kertoaksemme Matplotlibille, mikä tulee piirtämiemme palkkien eteen.

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

Pinotetut pylväsdiagrammit (pystysuora/vaakasuora) – Kuva kirjoittaja

Viileä. Voimme käyttää silmukkaa pylväiden piirtämiseen, välittää nollaluettelon parametrille ’bottom’ ensimmäisessä sarjassa ja kerätä seuraavat arvot seuraaville alueille.

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

Hienoa, tämä on paljon helppolukuisempi kuin edellinen.

Tärkeää on muistaa tämän kaavion tarkoitus, ennen kuin yritämme poimia siitä mitään oivalluksia. Tarkoituksena on vertailla alustojen kokonaismyyntiä ja ymmärtää kunkin alustan koostumusta.

Summien vertailu kenttien välillä ja alueiden vertailu yhden palkin sisällä on ok. Sen sijaan eri palkkien alueiden vertailu voi olla hyvin harhaanjohtavaa.

Tässä tapauksessa voimme verrata NA-aluetta kaikkien palkkien välillä, koska sillä on sama lähtöpiste jokaisella palkilla, mutta muiden alueiden vertailu ei ole niin helppoa. Otetaan esimerkiksi X360, sillä on matalampi JP-arvo kuin PS2:lla, mutta on vaikea verrata, onko muiden arvo korkeampi vai matalampi kuin Wiin.

Vertailuarvo – Kuva tekijä

Epävertailukelpoinen arvo – Image by Author

Esitettäköön, että muutamme pinon järjestystä, niin, että Muut myynnit on ensimmäinen palkki, ja lajittelemme tietueet Muiden myyntien mukaan. Pitäisi olla helpompi sanoa, kumpi on merkittävämpi.

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

Pinotettu pylväsdiagrammi, jossa korostuu luokka Muut – Kuva kirjoittaja

Tämässä havainnollistuksessa on kaksi olennaista osatekijää, luokkien järjestys pylväiden pinoamissa ja rivien järjestys.

Jos haluamme korostaa yhtä aluetta, voimme lajitella tietueet valitulla kentällä ja käyttää sitä vasemmanpuoleisimpana pylväänä.

Jos emme halua, voimme lajitella tietueet kokonaissumman mukaan ja järjestellä pinoissa kategoriat, joiden arvot ovat korkeammat, ensin.

Vastaa

Sähköpostiosoitettasi ei julkaista.