当 y 轴处于对数模式时,x 刻度值被截断

当 y 轴处于对数模式时,x 刻度值被截断

我有一些与此类似的代码:

\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}     
     

为什么当 y 轴处于对数模式时,打印 x 刻度时会09-20忽略接下来的十个刻度,而图表却打印正确?

如果 y 轴不是处于对数模式,我该如何使所有 x 刻度都像它们那样显示?

在此处输入图片描述

答案1

问题在于 Y 列中有零值,而这些值的对数是无穷大 ( -\infty)。因此,pgfplots 会跳过这些值。第三列的日期设置不正确。如果您显示 X 轴的数值(第一列),就会看到这一点。对于这样的一组值(带有零),您不能使用对数刻度。

相关内容