Carte a barre impilate con Matplotlib di Python

Nov 17, 2021
admin

Come previsto, il grafico è difficile da leggere. Proviamo il grafico a barre impilate e aggiungiamo alcuni aggiustamenti.

Prima di tutto, possiamo ordinare i valori prima di tracciarli, dandoci un miglior senso dell’ordine e rendendo più facile confrontare le barre. Lo faremo con la colonna ‘Vendite Globali’ perché ha il totale.

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

Alcuni dei record sul frame di dati – Immagine dall’autore

Prima, per costruire un grafico a barre clustered, abbiamo usato un grafico per ogni regione dove il parametro della larghezza e gli aggiustamenti nell’asse x ci hanno aiutato ad adattare le quattro aree di ogni piattaforma.

Similmente, per tracciare i grafici a barre a pila, useremo una trama per ogni regione. Questa volta useremo il parametro bottom/left per dire a Matplotlib cosa viene prima delle barre che stiamo disegnando.

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

Stacked Bar Charts (Vertical/ Horizontal) – Image by Author

Cool. Possiamo usare un ciclo per tracciare le barre, passando una lista di zeri per il parametro ‘bottom’ nella prima serie e accumulando i seguenti valori per le regioni successive.

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

Grande, questo è molto più leggibile di quello precedente.

È importante ricordare lo scopo di questo grafico prima di cercare di estrarre qualsiasi intuizione. L’idea qui è di confrontare le vendite totali delle piattaforme e capire la composizione di ogni piattaforma.

Confrontare i totali tra i campi e confrontare le regioni all’interno di una barra è ok. Confrontare le regioni di barre diverse, d’altra parte, può essere molto fuorviante.

In questo caso, possiamo confrontare la regione NA attraverso le barre poiché ha lo stesso punto di partenza per ogni barra, ma non è così facile confrontare le altre. Prendiamo la X360, per esempio, ha un valore più basso per JP rispetto alla PS2, ma è difficile confrontare se il valore degli altri è più alto o più basso del Wii.

Valore comparabile – Immagine dell’autore

Valore non comparabile – Immagine dell’autore

Supponiamo di cambiare l’ordine della pila, con Altre vendite come prima barra, e ordiniamo i record per Altre vendite. Dovrebbe essere più facile dire quale è più significativo.

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

Stacked Bar Chart, emphasizing the Others category – Image by Author

Ci sono due elementi essenziali in questa visualizzazione, l’ordine delle categorie nella pila di barre e l’ordine delle righe.

Se vogliamo enfatizzare una regione, possiamo ordinare i record con il campo scelto e usarlo come barra più a sinistra.

Se non vogliamo, possiamo ordinare i record per il totale e ordinare le pile con le categorie che hanno valori più alti per prime.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.