Grafici a Barre Raggruppate
Un'altra opzione comune è il grafico a barre raggruppate, in cui le barre per ciascuna categoria sono posizionate affiancate invece che sovrapposte.
Questo è utile quando si desidera confrontare le categorie tra gruppi (come i settori economici in diversi paesi), piuttosto che all'interno di un unico totale.
Passaggi per creare un grafico a barre raggruppate
Impostare una larghezza per le barre e creare un array per le posizioni sull'asse x utilizzando
np.arange()
;Combinare i dati delle categorie in un array 2D;
Utilizzare un ciclo
for
per disegnare ciascun gruppo di barre con la funzionebar()
, spostando orizzontalmente le loro posizioni;Personalizzare le posizioni e le etichette dei tick dell'asse x utilizzando
plt.xticks()
.
import matplotlib.pyplot as plt import numpy as np # Labels and data countries = ['USA', 'China', 'Japan'] positions = np.arange(len(countries)) primary = np.array([1.4, 4.8, 0.4]) secondary = np.array([11.3, 6.2, 0.8]) tertiary = np.array([14.2, 8.4, 3.2]) # Group the data sectors = np.array([primary, secondary, tertiary]) # Width of each bar width = 0.25 # Plot each group of bars for i in range(len(sectors)): plt.bar(positions + width * i, sectors[i], width) # Center the group of bars and label the ticks plt.xticks(positions + width, countries) plt.show()
Come funziona xticks()
Il primo argomento sposta i segni di graduazione al centro di ciascun gruppo di barre;
Il secondo argomento imposta le etichette utilizzando la lista
countries
.
Questo metodo funziona per qualsiasi numero di categorie — basta regolare il width
per assicurarsi che le barre non si sovrappongano.
Swipe to start coding
- Passare l'array corretto alla funzione
len()
. - Utilizzare la funzione corretta per tracciare i grafici a barre.
- Utilizzare la variabile corretta che deve essere moltiplicata per
i
. - Utilizzare la variabile corretta come indice per l'array
answers
. - Passare la variabile corretta come argomento più a destra della funzione di plotting.
Soluzione
Grazie per i tuoi commenti!