
Tengo un código similar a este:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{filecontents}{data-fake.dat}
xpos y date
1 1 09-01
2 3 09-02
3 1 09-03
4 4 09-04
5 2 09-05
6 1 09-06
7 2 09-07
8 0 09-08
9 1 09-09
10 2 09-10
11 1 09-11
12 2 09-12
13 0 09-13
14 1 09-14
15 1 09-15
16 0 09-16
17 2 09-17
18 0 09-18
19 0 09-19
20 0 09-20
21 4 09-21
22 0 09-22
23 0 09-23
24 1 09-24
25 0 09-25
26 0 09-26
27 1 09-27
28 3 09-28
29 1 09-29
30 10 09-30
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=32cm,
axis x line*=bottom,
axis y line*=left,
ymode=log,
log ticks with fixed point,
xtick=data,
xticklabels from table={data-fake.dat}{date},
x tick label style={rotate=90}
]
\addplot table[x=xpos,y=y] {data-fake.dat};
\end{axis}
\end{tikzpicture}
\end{document}
¿Por qué cuando el eje y está en modo de registro, los ticks x se imprimen hasta 09-20
ignorar los diez ticks siguientes mientras el gráfico se imprime correctamente?
¿Cómo hago para que todas las marcas x aparezcan como lo harían si el eje y no estuviera en modo de registro?
Respuesta1
El problema es que tienes valores cero en la columna Y y el logaritmo para dichos valores es infinito ( -\infty
). En consecuencia, pgfplots omite dichos valores. Las fechas de la tercera columna están configuradas incorrectamente. Esto se puede ver si muestra los valores numéricos (primera columna) para el eje X. Y para tal conjunto de valores (con ceros), no se puede utilizar una escala logarítmica.