如何在 y 轴不连续的情况下将 0 显示为 y 轴中的第一个值

如何在 y 轴不连续的情况下将 0 显示为 y 轴中的第一个值

我有以下图表,其中我想跳过 [0,50),因为在这个范围内没有 y 值。但是,我希望不连续点之前的值为 0 而不是 50。然后不连续点上方的第一个值为 50 而不是 60。我该怎么做?

在此处输入图片描述

\begin{tikzpicture}
\begin{axis}[
    title={Test},
    xlabel={X-Val},
    ylabel={Y-Val},
    xmajorgrids,
    xmin=0, xmax=6,
    % xtick=data,
    xtick={1,2,3,4,5},
    axis y discontinuity=crunch,
    axis y line=left,
    axis x line=bottom,
    ymin=50, ymax=110,
    % ytick=data,
    ytick={0,50,60,70,80,90,100},
    ytickmin=50,
    % enlargelimits=false,
    legend pos=north west,
    xlabel style={yshift=-0.7cm},
        x tick label style={
            yshift=-0.2cm,
            xshift=0.2cm,
            rotate=45,
            anchor=east,
        },
    ymajorgrids,
    grid style=dashed,
]

\addplot[
    color=blue,
    mark=square,
    ]
    coordinates {
    (1,50)(2,60)(3,70)(4,80)(5,88)
    };
    \legend{Legend}
    
\end{axis}
\end{tikzpicture}

以下是我想要的 y 轴

在此处输入图片描述

当我将 y 轴的最小值为 0 时,会发生这种情况

在此处输入图片描述

答案1

考虑了@Zarko 的回答后,我找到了解决方案。

我需要添加extra y ticks和,ymin其值比我的最小值低 10。并且我需要一个extra y tick labels值为 0 的。

因为我的最小 y 值是 50,所以我添加了以下内容,

extra y ticks={40},
extra y tick labels={0},
ymin=40,

这是最终的代码

\begin{tikzpicture}
\begin{axis}[
    title={Test},
    xlabel={X-Val},
    ylabel={Y-Val},
    xmajorgrids,
    xmin=0, xmax=6,
    xtick={1,2,3,4,5},
    axis y discontinuity=crunch,
    axis y line=left,
    axis x line=bottom,
    ymin=40, ymax=110,
    ytick={0,50,60,70,80,90,100},
    extra y ticks={40},
    extra y tick labels={0},
    legend pos=north west,
    xlabel style={yshift=-0.7cm},
        x tick label style={
            yshift=-0.2cm,
            xshift=0.2cm,
            rotate=45,
            anchor=east,
        },
    ymajorgrids,
    grid style=dashed,
]

\addplot[
    color=blue,
    mark=square,
    ]
    coordinates {
    (1,50)(2,60)(3,70)(4,80)(5,88)
    };
    \legend{Legend}
    
\end{axis}
\end{tikzpicture}

在此处输入图片描述

相关内容