Stacked Bar Charts with Python’s Matplotlib
Amint az várható volt, a diagram nehezen olvasható. Próbáljuk ki az egymásra helyezett oszlopdiagramot, és tegyünk hozzá néhány módosítást.
Először is, az ábrázolás előtt rendezhetjük az értékeket, így jobban érzékeljük a sorrendet, és könnyebben összehasonlíthatjuk a sávokat. Ezt a “Globális értékesítés” oszloppal fogjuk megtenni, mivel ez tartalmazza a teljes összeget.
## sort values
df_grouped = df_grouped.sort_values('Global_Sales')
df_grouped
A korábbiakban a klaszterezett oszlopdiagram elkészítéséhez minden régióhoz egy ábrát használtunk, ahol a szélességi paraméter és az x-tengely kiigazítása segített abban, hogy az egyes platformok négy területére illeszkedjen.
Hasonlóképpen, a halmozott oszlopdiagramok ábrázolásához minden egyes régióhoz egy-egy plotot fogunk használni. Ezúttal a bottom/left paramétert fogjuk használni, hogy megmondjuk a Matplotlibnek, mi álljon az általunk rajzolt sávok előtt.
plt.bar(, )
plt.bar(, , bottom = )
plt.show()plt.barh(, )
plt.barh(, , left = )
plt.show()
Cool. Egy ciklus segítségével ábrázolhatjuk a sávokat, átadva egy nullákból álló listát az ‘bottom’ paraméterhez az első sorozatban, és felhalmozva a következő értékeket a következő régiókhoz.
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()
Nagyszerű, ez sokkal olvashatóbb, mint az előző.
Nem szabad elfelejteni ennek a diagramnak a célját, mielőtt megpróbálnánk bármilyen betekintést nyerni. Az ötlet itt az, hogy összehasonlítsuk a platformok összesített eladásait, és megértsük az egyes platformok összetételét.
A mezők közötti összegek összehasonlítása és a régiók összehasonlítása egy sávon belül rendben van. A különböző sávokból származó régiók összehasonlítása viszont nagyon félrevezető lehet.
Ez esetben az NA régiót össze tudjuk hasonlítani a sávok között, mivel minden sávban ugyanaz a kezdőpontja, de a többit nem olyan könnyű összehasonlítani. Vegyük például az X360-at, annak alacsonyabb a JP értéke, mint a PS2-nek, de nehéz összehasonlítani, hogy a Többiek értéke magasabb vagy alacsonyabb, mint a Wii-é.