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