Gráficos de barras com pgfplots
Acrescente ybar (barras verticais) ou xbar (barras horizontais) a um axis do pgfplots, dê nome às categorias com symbolic x coords e passe cada série como um \addplot com coordenadas.
Barras verticais com categorias nomeadas
ybar no axis transforma todas as séries em barras. symbolic x coords lista os nomes das categorias em ordem, e xtick=data coloca uma marcação embaixo de cada barra.
Uma série de barras
\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}As barras começam no zero. Sem ymin=0, os eixos acrescentam um pouco de espaço abaixo do zero, então defina essa opção para que as barras fiquem apoiadas na moldura. enlarge x limits acrescenta espaço nas laterais, para que as barras das pontas não sejam cortadas pela moldura.
Barras agrupadas e rótulos de valor
Com várias séries, as barras de cada categoria ficam lado a lado. nodes near coords imprime cada valor acima da sua barra, e bar width define a largura (10pt por padrão).
Duas séries, com valores nas barras
\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 define o espaço entre as barras de um grupo (2pt por padrão).
Barras empilhadas
ybar stacked coloca as séries uma sobre a outra, em vez de lado a lado. O segundo \addplot começa onde o primeiro termina.
Barras empilhadas por 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}Barras horizontais
xbar desenha as barras da esquerda para a direita. Troque os papéis dos eixos: as categorias vão em symbolic y coords e ytick=data, e cada coordenada é escrita como (valor, categoria).
Barras horizontais
\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}xbar stacked também funciona.
Números como categorias
Anos e outros números não precisam de symbolic x coords: plote-os como números e use xtick=data. Por padrão, o pgfplots escreve 2024 como "2,024"; desligue o separador de milhar no estilo dos rótulos das marcações.
Anos no eixo 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}Opções num relance
| Opção | O que faz | No Scissor LaTeX |
|---|---|---|
ybar, xbar | barras verticais ou horizontais, lado a lado | Funciona |
ybar=4pt | o espaço entre as barras de um grupo | Funciona |
ybar stacked, xbar stacked | barras umas sobre as outras | Funciona em eixos lineares |
bar width=12pt | a largura de cada barra | Funciona |
bar shift=.. | desloca uma série para o lado | Funciona |
nodes near coords | o valor acima (ou ao lado) de cada barra | Funciona |
symbolic x coords, symbolic y coords | categorias com nome | Funciona, exceto nomes que parecem números (sem rótulos nas marcações) |
xticklabel style={rotate=45, anchor=east} | nomes de categoria inclinados | Funciona |
ybar interval | barras que preenchem o espaço entre os valores de x | Em parte: desenhadas como barras comuns nos valores de x |
hist (biblioteca statistics) | conta valores em intervalos | Não suportado: ignorado com uma mensagem, e os valores brutos são desenhados como linha |
O que muda em relação a uma instalação do TeX
Todos os exemplos desta página também compilam com pgfplots numa instalação do TeX. Manual: ctan.org/pkg/pgfplots.
Veja também Noções básicas de pgfplots, Barras de erro, Dados de CSV e pgfplots.
Perguntas e respostas
Como faço um gráfico de barras em LaTeX?
Carregue o pgfplots e escreva \begin{axis}[ybar, symbolic x coords={A,B,C}, xtick=data] com um \addplot coordinates {(A,3) (B,5) (C,2)}; por série.
Como mostro os valores em cima das barras?
Acrescente nodes near coords às opções do axis. Cada barra recebe o seu valor como rótulo.
Como faço as barras começarem no zero?
Elas já começam no zero. Defina ymin=0 no axis (ou xmin=0 para xbar) para remover o espaço abaixo delas.
Cada exemplo desta página é composto pelo Scissor LaTeX quando o site é gerado. Última atualização: 2026-11-07.