Grafici a barre con pgfplots
Aggiungi ybar (barre verticali) o xbar (barre orizzontali) a un axis di pgfplots, dai i nomi alle categorie con symbolic x coords, e scrivi ogni serie come un \addplot con coordinate.
Barre verticali con categorie con nome
ybar sull’axis trasforma ogni serie in barre. symbolic x coords elenca in ordine i nomi delle categorie, e xtick=data mette una tacca sotto ogni barra.
Una serie di barre
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0,
symbolic x coords={Mon, Tue, Wed, Thu, Fri},
xtick=data,
ylabel={Visitors},
enlarge x limits=0.15,
]
\addplot coordinates {(Mon,44) (Tue,31) (Wed,38) (Thu,27) (Fri,40)};
\end{axis}
\end{tikzpicture}Le barre partono da zero. Senza ymin=0 gli assi aggiungono un po’ di spazio sotto lo zero, quindi impostalo per far poggiare le barre sulla cornice. enlarge x limits aggiunge spazio ai lati, così le barre esterne non vengono tagliate dalla cornice.
Barre raggruppate ed etichette dei valori
Con più serie, le barre di ogni categoria stanno una accanto all’altra. nodes near coords scrive ogni valore sopra la sua barra, e bar width imposta la larghezza (10pt per impostazione predefinita).
Due serie, con i valori sulle barre
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0, ymax=55, bar width=12pt,
symbolic x coords={Erika, Hans, John},
xtick=data, enlarge x limits=0.25,
nodes near coords,
ylabel={Points},
legend style={at={(0.5,-0.12)}, anchor=north, legend columns=2},
]
\addplot coordinates {(Erika,44) (Hans,31) (John,38)};
\addplot coordinates {(Erika,40) (Hans,36) (John,29)};
\legend{Round 1, Round 2}
\end{axis}
\end{tikzpicture}ybar=4pt imposta lo spazio tra le barre di un gruppo (2pt per impostazione predefinita).
Barre impilate
ybar stacked mette le serie una sopra l’altra invece che una accanto all’altra. Il secondo \addplot inizia dove finisce il primo.
Barre impilate per trimestre
\begin{tikzpicture}
\begin{axis}[
ybar stacked, ymin=0, bar width=16pt,
symbolic x coords={Q1, Q2, Q3, Q4},
xtick=data, enlarge x limits=0.2,
legend pos=north west, ylabel={Sales},
]
\addplot coordinates {(Q1,12) (Q2,18) (Q3,15) (Q4,22)};
\addplot coordinates {(Q1,6) (Q2,9) (Q3,12) (Q4,10)};
\legend{Online, In store}
\end{axis}
\end{tikzpicture}Barre orizzontali
xbar disegna le barre da sinistra a destra. Scambia i ruoli degli assi: le categorie vanno in symbolic y coords e ytick=data, e ogni coordinata si scrive come (valore, categoria).
Barre orizzontali
\begin{tikzpicture}
\begin{axis}[
xbar, xmin=0, xmax=50,
symbolic y coords={Rust, Python, C},
ytick=data, enlarge y limits=0.3,
nodes near coords, xlabel={Projects},
width=8cm, height=5cm,
]
\addplot coordinates {(44,Rust) (31,Python) (12,C)};
\end{axis}
\end{tikzpicture}Funziona anche xbar stacked.
Numeri come categorie
Gli anni e gli altri numeri non hanno bisogno di symbolic x coords: tracciali come numeri e usa xtick=data. Per impostazione predefinita pgfplots scrive 2024 come "2,024"; disattiva il separatore delle migliaia nello stile delle etichette delle tacche.
Anni sull’asse x
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0, xtick=data, enlarge x limits=0.25,
x tick label style={/pgf/number format/1000 sep=},
]
\addplot coordinates {(2023,18) (2024,31) (2025,44)};
\end{axis}
\end{tikzpicture}Le opzioni in breve
| Opzione | Cosa fa | In Scissor LaTeX |
|---|---|---|
ybar, xbar | barre verticali o orizzontali, affiancate | Funziona |
ybar=4pt | lo spazio tra le barre di un gruppo | Funziona |
ybar stacked, xbar stacked | barre una sopra l’altra | Funziona su assi lineari |
bar width=12pt | la larghezza di ogni barra | Funziona |
bar shift=.. | sposta una serie di lato | Funziona |
nodes near coords | il valore sopra (o accanto a) ogni barra | Funziona |
symbolic x coords, symbolic y coords | categorie con nome | Funziona, tranne i nomi che sembrano numeri (nessuna etichetta delle tacche) |
xticklabel style={rotate=45, anchor=east} | nomi delle categorie inclinati | Funziona |
ybar interval | barre che riempiono lo spazio tra i valori x | In parte: disegnate come barre normali sui valori x |
hist (libreria statistics) | conta i valori in classi | Non supportato: ignorato con un messaggio, i valori grezzi vengono disegnati come una linea |
Cosa cambia rispetto a un’installazione TeX
Tutti gli esempi di questa pagina compilano anche con pgfplots in un’installazione TeX. Manuale: ctan.org/pkg/pgfplots.
Vedi anche Le basi di pgfplots, Barre di errore, Dati da CSV e pgfplots.
Domande e risposte
Come si crea un grafico a barre in LaTeX?
Carica pgfplots e scrivi \begin{axis}[ybar, symbolic x coords={A,B,C}, xtick=data] con un \addplot coordinates {(A,3) (B,5) (C,2)}; per ogni serie.
Come si mostrano i valori sopra le barre?
Aggiungi nodes near coords alle opzioni dell’axis. Ogni barra riceve il suo valore come etichetta.
Come faccio a far partire le barre da zero?
Partono già da zero. Imposta ymin=0 sull’axis (o xmin=0 per xbar) per togliere lo spazio sotto di esse.
Ogni esempio di questa pagina viene composto da Scissor LaTeX quando il sito viene generato. Ultimo aggiornamento: 2026-11-07.