Stacked Bar Charts with Python’s Matplotlib
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
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()
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()
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.