Ejes logarítmicos con pgfplots
Sustituye axis por semilogyaxis (y logarítmico), semilogxaxis (x logarítmico) o loglogaxis (ambos), o fija ymode=log o xmode=log en un axis normal.
Una escala logarítmica en el eje y
Los valores que crecen por factores, como recuentos, errores o frecuencias, se leen mejor en una escala logarítmica. semilogyaxis mantiene x lineal y hace y logarítmico. Las marcas van en las potencias de diez y se etiquetan como $10^k$.
Crecimiento exponencial en un eje 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}Una línea recta en este gráfico significa un crecimiento constante por el mismo factor en cada paso.
Ambos ejes logarítmicos
loglogaxis hace logarítmicos ambos ejes. Una ley de potencias como $y = x^2$ se convierte en una línea recta cuya pendiente es el exponente.
Leyes de potencias en un 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}Lo mismo con xmode e ymode
xmode=log e ymode=log dan una escala logarítmica a un axis normal. Es práctico cuando la elección la hace un estilo, o dentro de un gráfico agrupado.
xmode=log en un eje normal
\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}Las fórmulas también funcionan en ejes logarítmicos, pero domain y samples van en unidades de los datos: las muestras se reparten uniformemente entre los dos extremos, así que en un eje logarítmico casi todas caen en la última década. Por eso el ejemplo dibuja una curva paramétrica en el exponente t, de $10^1$ a $10^5$, lo que reparte las muestras uniformemente a lo largo del eje logarítmico. pgfplots se comporta igual.
Otra base
log basis y=2 (o log basis x) cambia la base. Las marcas van entonces en las potencias de 2 y se etiquetan $2^k$.
Base 2 en el eje 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}Opciones en ejes logarítmicos
| Opción | En Scissor LaTeX | Notas |
|---|---|---|
semilogxaxis, semilogyaxis, loglogaxis | Funciona | |
xmode=log, ymode=log | Funciona | |
log basis x=b, log basis y=b | Funciona | |
ymin, ymax en un eje logarítmico | Funciona | Da valores positivos. |
log ticks with fixed point | No se admite | Se ignora con un mensaje; las etiquetas siguen como potencias. |
ybar stacked en un eje logarítmico | No se admite | Las barras se dibujan unas sobre otras, sin apilar, y no se muestra ningún mensaje. |
| valores de 0 o menores | Se descartan | Los puntos que no se pueden mostrar en una escala logarítmica se omiten, con un único mensaje. |
Diferencias con una instalación de TeX
Consulta gráficos de barras para barras en ejes lineales y el manual de pgfplots para todas las opciones: ctan.org/pkg/pgfplots.
Consulta también Gráficos de líneas, Gráficos agrupados y Contornos y mapas de calor.
Preguntas y respuestas
¿Cómo hago logarítmico el eje y en pgfplots?
Usa \begin{semilogyaxis} ... \end{semilogyaxis} en lugar de axis, o añade ymode=log a las opciones del eje.
¿Por qué mi gráfico logarítmico no muestra datos?
Un eje logarítmico no puede mostrar valores cero ni negativos. Los puntos con esos valores se descartan, y la pestaña Problemas lo indica. Desplaza los datos o usa un eje lineal.
¿Puedo usar base 2 o base e?
Sí, con log basis y=2 (o cualquier número positivo, por ejemplo log basis x=2.71828).
Scissor LaTeX compone cada ejemplo de esta página al generar el sitio. Última actualización: 2026-11-07.