Trasforma i tuoi dati in grafici professionali e visualizzazioni accattivanti
Hai mai sentito dire "un'immagine vale più di mille parole"? Nel mondo dei dati, questa frase è letteralmente vera! Guarda questa differenza:
Opzione A - Solo numeri:
"Le vendite mensili sono state: 1200, 1350, 980, 1450, 1620, 1890, 2100, 1980, 2200, 2450, 2680, 3100"
Opzione B - Un grafico:
Immagina una linea che sale gradualmente con una leggera discesa a marzo,
poi riparte forte fino a dicembre. 📈
Cosa noti subito dal grafico? Trend in crescita, calo primaverile, boom natalizio. Con i numeri ci avresti messo 5 minuti a capirlo!
Matplotlib è lo strumento che ti permette di trasformare elenchi di numeri noiosi in grafici che raccontano storie, rivelano pattern nascosti e convincono le persone in pochi secondi! 🎨
Matplotlib è LA libreria Python per creare visualizzazioni di dati. È come avere Photoshop, ma per i grafici! Tutto fatto con codice.
Linee, barre, torte, dispersione, istogrammi, heatmap, 3D... e molto altro!
Usato in migliaia di paper scientifici, report aziendali e presentazioni
Puoi personalizzare ogni singolo pixel: colori, dimensioni, stili, posizioni
💡 Perché "Matplotlib"?
Il nome viene da "MAT(rix)PLOT(ting)LIB(rary)" - una libreria originalmente creata per imitare le funzionalità di plotting di MATLAB (un software scientifico). Oggi è diventata lo standard de facto in Python!
Excel Charts: Puoi fare grafici cliccando su Excel, vero? Matplotlib fa la stessa cosa, ma con codice. Vantaggio? Automatizzazione totale! Devi fare 100 grafici diversi? Scrivi il codice una volta e lascia che Python li crei tutti per te. In Excel ti ci vorrebbero ore! 💪
Prima di iniziare a programmare, capiamo come è fatto un grafico. È come conoscere le parti della macchina prima di guidarla!
| Componente | Cos'è (in parole semplici) | Funzione Python |
|---|---|---|
| Figure | La "finestra" o "foglio" dove vive tutto il grafico | plt.figure() |
| Axes | L'area del grafico dove vengono disegnati i dati | plt.subplot() |
| Axis | Gli assi X e Y con i numeri/etichette | plt.xlabel() |
| Title | Il titolo del grafico (es: "Vendite 2024") | plt.title() |
| Legend | La legenda che spiega colori/simboli | plt.legend() |
| Grid | La griglia di riferimento (righe e colonne) | plt.grid() |
Figure = la cornice/tela
Axes = l'area dove dipingi
Title = il titolo dell'opera
Legend = la targhetta che spiega i simboli
Grid = le linee guida che usi per dipingere dritto
Adesso creiamo il nostro primo grafico! Lo faremo spiegando OGNI SINGOLA RIGA. Niente sarà lasciato al caso! 💪
import matplotlib.pyplot as plt
Importa Matplotlib con il "soprannome" plt. Questo soprannome
è usato da TUTTI i programmatori Python nel mondo. È come chiamare "frigo"
invece di "frigorifero" - più corto e tutti capiscono!
import numpy as np
Importa NumPy (lo abbiamo visto nel modulo precedente). Ci serve per
creare i dati da visualizzare.
%matplotlib inline
Questo è un "comando magico" di Jupyter (nota il % all'inizio).
Dice a Jupyter: "Mostra i grafici direttamente qui nel notebook,
non aprire finestre separate". Se non usi Jupyter, puoi saltarlo!
Ho creato dati che mostrano una relazione logica: più studi, più alto è il voto. Questi sono i dati che "racconteranno una storia" nel nostro grafico.
Nota: Sono due liste Python normali. Matplotlib può lavorare sia con liste normali che con array NumPy!
plt.figure(figsize=(10, 6))
Crea una nuova "finestra" per il grafico. Il parametro figsize=(10, 6)
specifica le dimensioni in pollici (larghezza 10, altezza 6). Più grande = grafico
più leggibile, ma occupa più spazio. Dimensioni standard: (8, 6) o (10, 6).
plt.plot(ore_studio, voti, ...)
Questa è la funzione principale! Crea un grafico a linee. Vediamo TUTTI i parametri:
| Parametro | Valore | Cosa Fa |
|---|---|---|
ore_studio |
(lista) | Valori sull'asse X (orizzontale) |
voti |
(lista) | Valori sull'asse Y (verticale) |
color |
'blue' | Colore della linea |
linewidth |
2 | Spessore linea in pixel |
marker |
'o' | Simbolo sui punti: 'o'=cerchio |
markersize |
8 | Dimensione del marker |
label |
(testo) | Nome per la legenda |
plt.title(), plt.xlabel(), plt.ylabel()
Aggiungono testo al grafico. fontsize=16 indica la dimensione del carattere
(più grande = più visibile). fontweight='bold' rende il testo grassetto
(più professionale).
plt.grid(True, alpha=0.3, linestyle='--')
Attiva la griglia di riferimento. alpha=0.3 significa trasparenza 30%
(la griglia non deve distrarre!). linestyle='--' crea linee tratteggiate.
plt.legend()
Mostra la legenda usando le label definite in plot().
plt.show()
Visualizza il grafico! In Jupyter è spesso opzionale, ma è buona pratica metterlo sempre.
💡 Trucco per Ricordare l'Ordine:
1️⃣ Crea la figura (plt.figure())
2️⃣ Disegna i dati (plt.plot())
3️⃣ Aggiungi testi (plt.title(), plt.xlabel(), ecc.)
4️⃣ Personalizza (plt.grid(), plt.legend())
5️⃣ Mostra (plt.show())
Esistono decine di tipi di grafici. Ognuno racconta una storia diversa! Vediamo i 4 più importanti con esempi pratici.
Perfetto per: Temperature nel tempo, vendite mensili, crescita popolazione, andamento borsa
Perché: Mostra chiaramente COME qualcosa cambia nel tempo
Esempio vita reale: Grafico del tuo peso durante una dieta
'r-o' e 'b-s' sono formati abbreviati che combinano
colore, stile linea e marker in una sola stringa!
| Codice | Colore | Linea | Marker |
|---|---|---|---|
'r-o' |
r = red (rosso) | - = continua | o = cerchio |
'b-s' |
b = blue (blu) | - = continua | s = quadrato |
'g--^' |
g = green | -- = tratteggiata | ^ = triangolo |
Perfetto per: Confrontare categorie diverse, vendite per prodotto, voti per materia
Perché: Facilita il confronto visivo immediato tra valori
Esempio vita reale: Confronto prezzi tra supermercati diversi
plt.grid(axis='y') crea griglia solo orizzontale. Perché? Le griglie verticali in grafici a barre distraggono!
Annotazioni con plt.text(): Aggiunge testo sopra ogni barra.
bar.get_x() = posizione X, bar.get_width()/2 = centro barra,
ha='center' = allineamento centrale.
Perfetto per: Verificare se due cose sono collegate (altezza-peso, studio-voto)
Perché: Mostra se i punti formano un pattern (correlazione)
Esempio vita reale: Verificare se chi dorme di più ha voti migliori
c=voti = colore basato sul valore del voto! Ogni punto avrà un colore diverso.
cmap='RdYlGn' = Red-Yellow-Green colormap (semaforo!). Voti bassi = rosso, medi = giallo, alti = verde.
plt.colorbar() = aggiunge la barra colori laterale che spiega cosa significa ogni colore!
Perfetto per: Capire come sono distribuiti i dati (quanti hanno voti 6-7, quanti 7-8...)
Perché: Mostra la "forma" dei dati (normale? uniforme?)
Esempio vita reale: Distribuzione altezze in una classe
bins=15 = divide i dati in 15 "classi" (barre). Più bins = più dettaglio, meno bins = più semplice.
edgecolor='black' = bordo nero alle barre. Senza questo, le barre si fondono!
plt.axvline(media) = aggiunge linea verticale sulla media. Perfetto per evidenziare valori importanti!
Congratulazioni! Hai appena imparato le basi di Matplotlib! 🎉
✅ Cosa Hai Imparato:
🎯 Prossima Lezione: GUI con Tkinter
Nel prossimo modulo imparerai a creare interfacce grafiche complete con bottoni, input, finestre... Potrai costruire vere applicazioni desktop con Python! 💻✨
💪 Consiglio per Imparare Davvero:
NON copiare e incollare il codice! Scrivilo A MANO almeno 3 volte. Solo così sviluppi la "memoria muscolare" della programmazione. È come imparare a suonare la chitarra: devi FARE, non solo guardare! 🎸