Eixos logarítmicos com pgfplots
Troque axis por semilogyaxis (y logarítmico), semilogxaxis (x logarítmico) ou loglogaxis (os dois), ou defina ymode=log ou xmode=log num axis comum.
Uma escala logarítmica no eixo y
Valores que crescem por fatores, como contagens, erros ou frequências, ficam mais legíveis numa escala logarítmica. semilogyaxis mantém x linear e torna y logarítmico. As marcações ficam nas potências de dez e são rotuladas como $10^k$.
Crescimento exponencial num eixo y logarítmico
\begin{tikzpicture}
\begin{semilogyaxis}[xlabel={Day}, ylabel={Cells}, grid=major]
\addplot coordinates {(0,44) (1,120) (2,350) (3,980) (4,2700) (5,7600) (6,21000)};
\end{semilogyaxis}
\end{tikzpicture}Uma reta neste gráfico significa crescimento constante pelo mesmo fator a cada passo.
Os dois eixos logarítmicos
loglogaxis torna os dois eixos logarítmicos. Uma lei de potência como $y = x^2$ vira uma reta cuja inclinação é o expoente.
Leis de potência num gráfico log-log
\begin{tikzpicture}
\begin{loglogaxis}[xlabel=$n$, ylabel={Time (s)}, legend pos=north west]
\addplot coordinates {(10,0.001) (100,0.01) (1000,0.1) (10000,1)};
\addplot coordinates {(10,0.0001) (100,0.01) (1000,1) (10000,100)};
\legend{$O(n)$, $O(n^2)$}
\end{loglogaxis}
\end{tikzpicture}O mesmo com xmode e ymode
xmode=log e ymode=log dão a um axis comum uma escala logarítmica. Isso é útil quando a escolha é feita por um estilo, ou dentro de um gráfico em grupo.
xmode=log num axis comum
\begin{tikzpicture}
\begin{axis}[xmode=log, xlabel={Frequency (Hz)}, ylabel={Gain (dB)}, ymin=-30, ymax=5]
\addplot[blue, thick, domain=1:5, samples=60, variable=t]
({10^t}, {-10*log10(1 + (10^t/1000)^2)});
\end{axis}
\end{tikzpicture}Fórmulas também funcionam em eixos logarítmicos, mas domain e samples são em unidades dos dados: as amostras são distribuídas por igual entre as duas pontas, então num eixo logarítmico quase todas caem na última década. Por isso o exemplo plota uma curva paramétrica no expoente t, de $10^1$ a $10^5$, o que distribui as amostras por igual ao longo do eixo logarítmico. O pgfplots se comporta do mesmo jeito.
Outra base
log basis y=2 (ou log basis x) muda a base. As marcações passam a ficar nas potências de 2 e são rotuladas como $2^k$.
Base 2 no eixo y
\begin{tikzpicture}
\begin{semilogyaxis}[log basis y=2, xlabel={Doublings}, ymin=1, ymax=64]
\addplot coordinates {(0,1) (1,2) (2,4) (3,8) (4,16) (5,32)};
\end{semilogyaxis}
\end{tikzpicture}Opções em eixos logarítmicos
| Opção | No Scissor LaTeX | Observações |
|---|---|---|
semilogxaxis, semilogyaxis, loglogaxis | Funciona | |
xmode=log, ymode=log | Funciona | |
log basis x=b, log basis y=b | Funciona | |
ymin, ymax num eixo logarítmico | Funciona | Use valores positivos. |
log ticks with fixed point | Não suportado | Ignorado com uma mensagem; os rótulos continuam como potências. |
ybar stacked num eixo logarítmico | Não suportado | As barras são desenhadas umas por cima das outras, sem empilhar, e nenhuma mensagem aparece. |
| valores iguais a 0 ou menores | Descartados | Pontos que não podem aparecer numa escala logarítmica ficam de fora, com uma mensagem. |
O que muda em relação a uma instalação do TeX
Veja gráficos de barras para barras em eixos lineares e o manual do pgfplots para todas as opções: ctan.org/pkg/pgfplots.
Veja também Gráficos de linhas, Gráficos em grupo e Contornos e mapas de calor.
Perguntas e respostas
Como deixo o eixo y logarítmico no pgfplots?
Use \begin{semilogyaxis} ... \end{semilogyaxis} em vez de axis, ou acrescente ymode=log às opções do axis.
Por que meu gráfico logarítmico não mostra dados?
Um eixo logarítmico não pode mostrar zero nem valores negativos. Pontos com esses valores são descartados, e a aba Problemas avisa. Desloque os dados ou use um eixo linear.
Posso usar base 2 ou base e?
Sim, com log basis y=2 (ou qualquer número positivo, por exemplo log basis x=2.71828).
Cada exemplo desta página é composto pelo Scissor LaTeX quando o site é gerado. Última atualização: 2026-11-07.