Saltar al contenido

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

LaTeXPreámbulo: \usepackage{pgfplots}Abrir en el editor (se abre en una pestaña nueva)
\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

LaTeXPreámbulo: \usepackage{pgfplots}Abrir en el editor (se abre en una pestaña nueva)
\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}
Compuesto por Scissor LaTeX: Leyes de potencias en un gráfico log-log

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

LaTeXPreámbulo: \usepackage{pgfplots}Abrir en el editor (se abre en una pestaña nueva)
\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}
Compuesto por Scissor LaTeX: xmode=log en un eje normal

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

LaTeXPreámbulo: \usepackage{pgfplots}Abrir en el editor (se abre en una pestaña nueva)
\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ónEn Scissor LaTeXNotas
semilogxaxis, semilogyaxis, loglogaxisFunciona
xmode=log, ymode=logFunciona
log basis x=b, log basis y=bFunciona
ymin, ymax en un eje logarítmicoFuncionaDa valores positivos.
log ticks with fixed pointNo se admiteSe ignora con un mensaje; las etiquetas siguen como potencias.
ybar stacked en un eje logarítmicoNo se admiteLas barras se dibujan unas sobre otras, sin apilar, y no se muestra ningún mensaje.
valores de 0 o menoresSe descartanLos 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.