Vai al contenuto principale

Grafici a linee in Matplotlib con Python

Questo tutorial pratico esplora in profondità la creazione e la personalizzazione di grafici a linee con Matplotlib, una potente libreria di data visualization in Python.
Aggiornato 29 set 2026  · 11 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

La visualizzazione dei dati e lo storytelling sono fondamentali per i data scientist, perché trasformano insight complessi in narrazioni coinvolgenti e facili da assimilare, favorendo una comunicazione efficace. Anche se vengono rilasciate librerie sempre nuove e più sofisticate, Matplotlib resta una delle librerie di plotting più popolari e rappresenta le fondamenta di molte di quelle più recenti.

Questo tutorial si concentra su uno dei tipi di grafici più comuni in Matplotlib: il grafico a linee. I grafici a linee sono eccellenti per mettere in evidenza tendenze e oscillazioni dei dati nel tempo, collegando i punti (letteralmente) per dipingere un quadro chiaro di ciò che sta accadendo.

Si parte dalle basi per creare un semplice grafico a linee e si passa poi a tecniche più avanzate, come l’aggiunta di informazioni statistiche ai grafici. Al termine, avrai una solida comprensione di come creare diversi tipi di grafici a linee in Matplotlib e usarli per comunicare in modo efficace i tuoi insight.

Pronto a migliorare le tue competenze di visualizzazione? Iniziamo!

Librerie, dati e pre-processing

Prima di creare grafici a linee con Matplotlib, dobbiamo configurare l’ambiente. Questo include l’installazione di Matplotlib, l’importazione delle librerie necessarie e il pre-processing del dataset che useremo negli esempi.

Installare Matplotlib

Per installare Matplotlib, puoi usare pip, il gestore di pacchetti per Python. Apri un terminale o prompt dei comandi e digita:

pip install matplotlib

Questo installerà l’ultima versione di Matplotlib sulla tua macchina.

Importare le librerie necessarie

Una volta installato Matplotlib, dobbiamo importarlo insieme ad altre librerie necessarie come NumPy e Pandas. NumPy è una libreria per lavorare con gli array, mentre Pandas è dedicata alla manipolazione e all’analisi dei dati.

Per importare queste librerie, digita semplicemente il seguente codice:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

Lettura e pre-processing dei dati

Per questo tutorial useremo un dataset con i prezzi giornalieri dell’indice DJIA. Il dataset include cinque colonne: 

  • La colonna Date indica la data in cui sono state registrate le restanti informazioni sui prezzi
  • Open, Close: il prezzo del DJIA all’apertura e alla chiusura del mercato azionario in quel determinato giorno
  • High, Low: il prezzo più alto e più basso raggiunto dal DJIA nel corso della giornata

Dopo aver caricato il dataset, eseguiremo alcune operazioni di pre-processing di base come rinominare la colonna, convertirla in variabile datetime e ordinare i dati in ordine crescente di data.

Ecco il codice per quanto sopra:

# Load the dataset into a Pandas DataFrame
df = pd.read_csv("HistoricalPrices.csv")

# Rename the column to remove an additional space
df = df.rename(columns = {' Open': 'Open', ' High': 'High', ' Low': 'Low', ' Close': 'Close'})

# Convert the date column to datetime
df['Date'] = pd.to_datetime(df['Date'])

# Sort the dataset in the ascending order of date
df = df.sort_values(by = 'Date')

Ora che abbiamo configurato l’ambiente e caricato il dataset, possiamo passare alla creazione di grafici a linee con Matplotlib.

Creare un grafico a linee di base in Matplotlib

Inizieremo creando un grafico a linee di base per poi personalizzarlo così da renderlo più presentabile e informativo.

Usare plt.plot() per creare un grafico a linee

Per creare un grafico a linee useremo la funzione plt.plot(). Questa funzione accetta due parametri: i valori dell’asse x e quelli dell’asse y. Nel nostro caso, la colonna delle date sarà l’asse x, mentre la colonna dei valori di chiusura sarà l’asse y. Ecco il codice:

# Extract the date and close price columns
dates = df['Date']
closing_price = df['Close']

# Create a line plot
plt.plot(dates, closing_price)

# Show the plot
plt.show()

Eseguendo il codice qui sopra, vedrai un grafico a linee di base del titolo DJIA. 

grafico a linee in matplotlib

Personalizzare il grafico a linee

Matplotlib offre molte possibilità di personalizzazione, che possiamo sfruttare in base alle nostre esigenze.

Impostare il colore della linea

Per impostazione predefinita, la funzione plt.plot() traccia una linea blu. Puoi però cambiare il colore passando il parametro color alla funzione. Il parametro color può accettare una stringa con il nome del colore o un codice esadecimale. 

Ecco un esempio:

# Tracciare in rosso
plt.plot(dates, closing_price, color='red')

# Show the plot
plt.show()

Questo codice traccerà una linea rossa invece che blu, come mostrato di seguito:

impostare il colore della linea per un grafico a linee in matplotlib

Grafico a linee di base in rosso

Impostare lo spessore della linea

Puoi anche cambiare lo spessore della linea passando il parametro linewidth alla funzione plt.plot(). Il parametro linewidth accetta un valore in virgola mobile che rappresenta lo spessore della linea. 

Ecco un esempio:

# Aumentare lo spessore della linea
plt.plot(dates, closing_price, linewidth=3)

# Show the plot
plt.show()

Questo codice traccerà una linea con spessore 3 invece del valore predefinito, come mostrato di seguito: 

impostare lo spessore della linea per un grafico a linee in matplotlib

Linee più spesse nel grafico grazie a un linewidth maggiore

Impostare lo stile della linea

Puoi modificare lo stile della linea passando il parametro linestyle alla funzione plt.plot(). Il parametro linestyle accetta una stringa che rappresenta lo stile della linea. La documentazione di Matplotlib fornisce un elenco completo degli stili disponibili. 

impostare lo stile della linea per un grafico a linee in matplotlib

Ecco come usarli nel codice:

# Tracciare singolarmente linee in solid, dotted, dashed e dashdot

plt.plot(dates, closing_price, linestyle='solid') # Stile predefinito
plt.plot(dates, closing_price, linestyle='dotted')
plt.plot(dates, closing_price, linestyle='dashed')
plt.plot(dates, closing_price, linestyle='dashdot')

# Show the plot
plt.show()

Aggiungere marker ai grafici a linee

I marker possono essere utilizzati per evidenziare punti specifici nel grafico a linee. Esistono vari simboli utilizzabili come marker, consultabili nella documentazione di Matplotlib.

Ecco un esempio di uso dei marker in un grafico a linee:

# Aggiungere un marker a croce per ogni punto
plt.plot(df['Date'], df['Close'], marker='x')

# Show the plot
plt.show()

Nel codice sopra, usiamo marker a croce (x) per evidenziare i prezzi di Close del titolo DJIA, come mostrato di seguito: 

aggiungere marker a un grafico a linee in matplotlib

Aggiungere etichette e titolo

Per rendere il grafico più informativo, possiamo aggiungere le etichette degli assi e un titolo. Possiamo farlo usando rispettivamente le funzioni plt.xlabel(), plt.ylabel() e plt.title(). 

Ecco un esempio:

plt.plot(dates, closing_price, color='red', linewidth=2)
plt.xlabel('Date')
plt.ylabel('Closing Price')
plt.title('DJIA Stock Price')

# Show the plot
plt.show()

Questo codice traccia una linea rossa con spessore 2, con l’asse x etichettato "Date", l’asse y etichettato "Closing Price" e il titolo "DJIA Stock Price". 

aggiungere etichette e titolo a un grafico a linee in matplotlib

Aggiungere le griglie

Possiamo anche aggiungere le linee della griglia per rendere il grafico più leggibile. Possiamo farlo usando la funzione plt.grid(). La funzione plt.grid() accetta un valore booleano che indica se mostrare la griglia. 

Ecco un esempio: 

plt.plot(dates, closing_price, color='red', linewidth=2)
plt.xlabel('Date')
plt.ylabel('Closing Price')
plt.title('DJIA Stock Price')

# Add the grid
plt.grid(True)

# Show the plot
plt.show()

Vedrai che la griglia è stata aggiunta al grafico: 

aggiungere linee della griglia a un grafico a linee in matplotlib

Grafici a linee Matplotlib con linee multiple

In alcuni casi potresti voler tracciare più linee nello stesso grafico. Per farlo, puoi chiamare più volte la funzione plt.plot() con dati diversi per ciascuna chiamata. Ecco un esempio:

# Grafico a linee dei prezzi Open e Close

plt.plot(df['Date'], df['Open'])
plt.plot(df['Date'], df['Close'])
plt.title('DJIA Open and Close Prices')
plt.xlabel('Date')
plt.ylabel('Price')

plt.show()

Nel codice sopra, stiamo tracciando sia i prezzi di Open sia di Close del titolo DJIA sullo stesso grafico. 

aggiungere una seconda linea a un grafico a linee in matplotlib

Grafici a linee Matplotlib con assi gemelli

Potrebbero esserci casi in cui vuoi rappresentare due variabili con scale diverse nello stesso grafico. In queste situazioni, usare assi gemelli è un modo efficace per visualizzare la relazione tra le variabili senza perdere la chiarezza delle singole scale. 

Per creare un grafico a linee con assi gemelli, dobbiamo usare la funzione twinx(). Questa funzione crea un nuovo asse y che condivide lo stesso asse x del grafico originale. 

Ecco un esempio:

# Create a new variable for demonstration purposes
df['High_minus_Low'] = df['High'] - df['Low']

# Create a basic line plot for the Close prices
fig, ax1 = plt.subplots()
ax1.plot(df['Date'], df['Close'], color='blue', label='Close Price')
ax1.set_xlabel('Date')
ax1.set_ylabel('Closing Price', color='blue')
ax1.tick_params(axis='y', labelcolor='blue')

# Create a twin axis for the High_minus_Low variable
ax2 = ax1.twinx()
ax2.plot(df['Date'], df['High_minus_Low'], color='green', label='High - Low')
ax2.set_ylabel('High minus Low', color='green')
ax2.tick_params(axis='y', labelcolor='green')

# Add a title and show the plot
plt.title('DJIA Stock Price and High-Low Difference with Twin Axes')
plt.show()

Ed ecco il grafico risultante con assi gemelli: 

aggiungere un secondo asse a un grafico a linee in matplotlib

Aggiungere informazioni statistiche ai grafici a linee in Matplotlib

Oltre a visualizzare tendenze e pattern nei dati, i grafici a linee possono mostrare informazioni statistiche come linee di regressione e barre di errore. 

Aggiungere una linea di regressione in Matplotlib

Una linea di regressione è la linea che meglio si adatta ai punti in un grafico e può essere usata per modellare e prevedere valori futuri. Possiamo aggiungerla al nostro grafico usando la funzione polyfit() della libreria NumPy, che adatta una regressione polinomiale ai nostri punti dati. 

import matplotlib.dates as mdates

# Convert Date column to numeric value
df['Date'] = mdates.date2num(df['Date'])

# Add regression line to plot
coefficients_open = np.polyfit(df['Date'], df['Open'], 1)
p_open = np.poly1d(coefficients_open)

coefficients_close = np.polyfit(df['Date'], df['Close'], 1)
p_close = np.poly1d(coefficients_close)

fig, ax = plt.subplots()
ax.plot(df['Date'], df['Open'], '.', label='Open Price')
ax.plot(df['Date'], p_open(df['Date']), '-', label='Open Regression Line')
ax.plot(df['Date'], df['Close'], '.', label='Close Price')
ax.plot(df['Date'], p_close(df['Date']), '-', label='Close Regression Line')
ax.set_title('DIJA Stock Prices')
ax.set_xlabel('Date')
ax.set_ylabel('Price')
ax.legend()

# Format x-axis labels as dates
date_form = mdates.DateFormatter("%Y-%m-%d")
ax.xaxis.set_major_formatter(date_form)
plt.gcf().autofmt_xdate()

plt.show()

In questo codice, convertiamo prima le date in valori numerici usando la funzione date2num() e poi usiamo la funzione polyfit() per ottenere i coefficienti della linea di regressione. Usiamo la funzione poly1d() per tracciare la linea. Rappresentiamo i punti dati originali con dei punti e la linea di regressione con una linea continua. 

aggiungere una linea di regressione a un grafico a linee in matplotlib

Aggiungere barre di errore

Le barre di errore sono una rappresentazione grafica della variabilità dei dati e possono essere utilizzate per indicare l’incertezza nelle misurazioni.

Questo è particolarmente utile quando ti aspetti degli errori nel processo di raccolta dati, come dati sulla temperatura, qualità dell’aria e così via. Anche se i prezzi azionari sono certi, supponiamo un potenziale errore pari a una deviazione standard e tracciamolo usando la funzione errorbar di Matplotlib.

# Calculate standard deviation of data
std = df['Close'].std()

# Add error bars to plot
plt.errorbar(df['Date'], df['Close'], yerr=std/2, fmt='.', label='Close Price')
plt.title('DIJA Stock Prices')
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend()
plt.show()

In questo codice, calcoliamo innanzitutto la deviazione standard dei prezzi di Close nel nostro dataset. Usiamo poi la funzione errorbar() per aggiungere le barre di errore al grafico a linee, impostando l’ampiezza della barra a metà della deviazione standard. 

aggiungere barre di errore a un grafico a linee in matplotlib

Queste tecniche ci permettono di aggiungere informazioni statistiche ai nostri grafici a linee e ottenere insight più profondi dai dati.

Conclusione

I grafici a linee sono uno strumento potente per visualizzare tendenze e pattern nei dati, e Matplotlib offre un’interfaccia semplice per crearli. 

Come passo successivo, potresti seguire il nostro corso Intermediate Python, in cui applicherai tutto ciò che hai imparato in un case study di hacker statistics. 

Speriamo che questo tutorial ti abbia aiutato a iniziare con la creazione di grafici a linee in Matplotlib. Abbiamo anche trattato in modo approfondito gli altri grafici di Matplotlib in un altro tutorial, che può offrirti una panoramica di cos’altro puoi fare con Matplotlib. 

Continua a esplorare e a sperimentare per creare visualizzazioni efficaci e far emergere insight dai tuoi dati!

Argomenti
Data Visualization
Python
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro