Hacer que el rango del eje y de un gráfico tenga más valores en algunas partes

Hacer que el rango del eje y de un gráfico tenga más valores en algunas partes

Para el MWE a continuación:

\documentclass{report}
\usepackage[left=2.5cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}


\begin{document}

\begin{figure}[H]
\begin{tikzpicture}
\begin{axis}[%
scaled y ticks = true,
width=1*\textwidth,
height=8cm,
xlabel={Query $\#$},
ylabel={Elapsed Time (in seconds)},
grid=both,
minor x tick num=5,
minor y tick num=5,
enlarge x limits=0,
legend entries={Original, byHalf, Random, Hybrid},
scaled x ticks = true
]
\addplot [
color=blue,mark=x,
solid,
line width=1.0pt
]
coordinates{
(0,39.0819) (1,2292) (2,4484.82) (3,6057.37) (4,38.3475) (5,15.4616) (6,38.5286) (7,15.411) (8,38.3627) (9,14.8773) (10,15.4079) (11,38.8762) (12,20.9027) (13,35.6657) 
};

\addplot [
color=red,mark=x,
solid,
line width=1.0pt
]
coordinates{
(0,38.9575) (1,2720.19) (2,1929.3) (3,1677.22) (4,111.165) (5,68.6833) (6,94.4457) (7,76.0591) (8,94.0201) (9,109.844) (10,78.6465) (11,91.7805) (12,12.9179) (13,78.6684) 
};


\end{axis}
\end{tikzpicture}
\end{figure}

\end{document}

Si lo compilas, verás que la última parte de la trama parece como si las líneas se tocaran entre sí y parecen iguales, pero en realidad hay unos 50 segundos entre ellas. Esto sucede porque los ticks del eje y avanzan (automáticamente) en pasos de 1000.

¿Cómo puedo controlar esto? ¿Es posible hacerlo primero en pasos de 100 y luego, cuando llegue a 1000, cambiar a pasos de 1000?

Respuesta1

Los ejes que utiliza actualmente son lineales. Esto significa que, si agrega más puntos entre 0 y 1000, agregará solo más líneas y etiquetas en la misma distancia (la distancia entre 0 y 1000 seguirá siendo la misma).

Para resaltar las diferencias entre 0 y 1000 puedes utilizar una escala logarítmica. Usando una escala logarítmica, la distancia entre 0 y 10 será la misma que la distancia entre 10 y 100 o 100 y 1000 (y así sucesivamente).

Su ejemplo se verá así con un eje y logarítmico:

captura de pantalla

\documentclass{report}
\usepackage[left=2.5cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}


\begin{document}

\begin{figure}[H]
  \begin{tikzpicture}
    \begin{semilogyaxis}[%
      width=1*\textwidth,
      height=8cm,
      xlabel={Query $\#$},
      ylabel={Elapsed Time (in seconds)},
      grid=both,
      enlarge x limits=0,
      legend entries={Original, byHalf, Random, Hybrid},
      scaled x ticks = true
    ]
    \addplot [color=blue,mark=x,solid,line width=1.0pt]
      coordinates{
        (0,39.0819) (1,2292) (2,4484.82) (3,6057.37) (4,38.3475) (5,15.4616) (6,38.5286) (7,15.411) (8,38.3627) (9,14.8773) (10,15.4079) (11,38.8762) (12,20.9027) (13,35.6657) 
   };

    \addplot [color=red,mark=x,solid,line width=1.0pt]
      coordinates{
       (0,38.9575) (1,2720.19) (2,1929.3) (3,1677.22) (4,111.165) (5,68.6833) (6,94.4457) (7,76.0591) (8,94.0201) (9,109.844) (10,78.6465) (11,91.7805) (12,12.9179) (13,78.6684) 
    };
  \end{semilogyaxis}
\end{tikzpicture}
\end{figure}

\end{document}

En lugar de usar

\begin{semilogyaxis} 
...
\end{semilogyaxis}

también puedes usar

\begin{axis}[xmode=normal,ymode=log]
...
\end{axis}

Para obtener más configuraciones e información, consulte eldiagramas de pgfdocumentación (páginas 16-19).

información relacionada