Stablede søjlediagrammer med Pythons Matplotlib
Som forventet er diagrammet svært at læse. Lad os prøve det stablede søjlediagram og tilføje et par justeringer.
Først kan vi sortere værdierne, før vi plotter, hvilket giver os en bedre fornemmelse af rækkefølge og gør det lettere at sammenligne søjlerne. Vi gør det med kolonnen “Globalt salg”, da den har totalen.
## sort values
df_grouped = df_grouped.sort_values('Global_Sales')
df_grouped
Førhen, for at opbygge et clusteret søjlediagram, brugte vi et plot for hver region, hvor breddeparameteren og justeringer i x-aksen hjalp os med at passe til hver platforms fire områder.
Sådan bruger vi et plot for hvert område til at tegne stablede søjlediagrammer. Denne gang bruger vi parameteren bund/venstre til at fortælle Matplotlib, hvad der kommer før de søjler, vi tegner.
plt.bar(, )
plt.bar(, , bottom = )
plt.show()plt.barh(, )
plt.barh(, , left = )
plt.show()
Cool. Vi kan bruge en sløjfe til at plotte søjlerne ved at videregive en liste af nuller til parameteren “bund” i det første sæt og akkumulere de følgende værdier til de næste 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()
Great, dette er langt mere læseligt end det sidste.
Det er vigtigt at huske formålet med dette diagram, før man forsøger at uddrage nogen indsigt. Ideen her er at sammenligne platformenes samlede salg og forstå den enkelte platforms sammensætning.
Sammenligning af totaler på tværs af felter og sammenligning af regioner inden for en søjle er ok. Sammenligning af regioner fra forskellige søjler kan derimod være meget misvisende.
I dette tilfælde kan vi sammenligne NA-regionen på tværs af søjlerne, da den har samme udgangspunkt for hver søjle, men det er ikke så let at sammenligne de andre. Tag f.eks. X360, den har en lavere værdi for JP end PS2, men det er svært at sammenligne, om den anden værdi er højere eller lavere end Wii’en.