Stacked Bar Charts with Python’s Matplotlib

nov. 17, 2021
admin

Așa cum era de așteptat, graficul este greu de citit. Să încercăm graficul cu bare suprapuse și să adăugăm câteva ajustări.

În primul rând, putem sorta valorile înainte de a le reprezenta grafic, oferindu-ne un sens mai bun al ordinii și făcând mai ușoară compararea barelor. Vom face acest lucru cu coloana „Vânzări globale”, deoarece aceasta are totalul.

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

Câteva dintre înregistrările din cadrul de date – Imagine de autor

Anterior, pentru a construi un grafic cu bare grupate, am folosit un grafic pentru fiecare regiune în care parametrul de lățime și ajustările pe axa x ne-au ajutat să ne încadrăm în cele patru zone ale fiecărei platforme.

În mod similar, pentru trasarea graficelor de bare cu stive, vom folosi un grafic pentru fiecare regiune. De data aceasta vom folosi parametrul bottom/left pentru a-i spune lui Matplotlib ce vine înainte de barele pe care le desenăm.

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

Stacked Bar Charts (Vertical/ orizontal) – Imagine de autor

Cool. Putem folosi o buclă pentru a trasa barele, trecând o listă de zerouri pentru parametrul „bottom” în primul set și acumulând următoarele valori pentru următoarele regiuni.

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

Genial, acesta este mult mai ușor de citit decât ultimul.

Este important să ne amintim scopul acestui grafic înainte de a încerca să extragem orice informații. Ideea aici este de a compara vânzările totale ale platformelor și de a înțelege compoziția fiecărei platforme.

Compararea totalurilor între câmpuri și compararea regiunilor în interiorul unei bare este în regulă. Pe de altă parte, compararea regiunilor din bare diferite poate fi foarte înșelătoare.

În acest caz, putem compara regiunea NA între bare, deoarece are același punct de plecare pentru fiecare bară, dar nu este atât de ușor să le comparăm pe celelalte. Să luăm X360, de exemplu, are o valoare mai mică pentru JP decât PS2, dar este greu de comparat dacă valoarea celorlalți este mai mare sau mai mică decât cea a Wii.

Valoare comparabilă – Imagine de autor
.

Valoare necomparabilă – Imagine de autor

Să presupunem că schimbăm ordinea stivei, cu Alte vânzări ca primă bară și să sortăm înregistrările după Alte vânzări. Ar trebui să fie mai ușor să ne dăm seama care este mai semnificativă.

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

Grafic cu bare suprapuse, evidențiind categoria Altele – Imagine de autor

Există două elemente esențiale în această vizualizare, ordinea categoriilor în stiva de bare și ordinea rândurilor.

Dacă dorim să evidențiem o regiune, putem sorta înregistrările cu câmpul ales și să îl folosim ca bară cea mai din stânga.

Dacă nu, putem sorta înregistrările în funcție de total și să ordonăm stivele cu categoriile care au valori mai mari mai întâi.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.