线绘制在 x 轴下方

线绘制在 x 轴下方

我想要将线绘制在 x 轴上方。现在先绘制线,然后绘制 x 轴。我想要将其反转。

\begin{center}
    \begin{tikzpicture}
        \begin{axis}[
            axis lines = center,
            xlabel = \(t\),
            ylabel = {\(\text{Hv}(t)\)},
            ymin=0,
            ymax=1.5,
            every axis plot/.append style={ultra thick},
            tick align=inside
        ]

        \addplot [
            domain=0:5, 
            samples=100, 
            color=red,
        ]
        {1};

        \addplot [
            domain=-5:0, 
            samples=100, 
            color=red,
        ]
        {0};
        \addplot[soldot] coordinates{(0,1)};
        \addplot[holdot] coordinates{(0,0)};
        \end{axis}
    \end{tikzpicture}
\end{center}

线绘制在 x 轴下方

提前致谢

答案1

请注意pgfplots 通常绘制在情节轨迹下方

您的问题是由剪辑行为引起的:默认情况下,所有图都剪辑到坐标区域。

如果你仔细观察:

1 号线

0 处的线

在水平轴上,线在 y=0 处被剪切;因此它的厚度是预期的一半,并且您还会看到轴的线的一半(它也以 y=0 为中心)。

您可以通过使用clip=false环境选项来解决这个问题axis,但是,如果您想要对剪辑进行更细粒度的控制,您可以这样做(感谢@Jinwen 回答对于 MWE):

\documentclass{article}

\usepackage{mathtools}
\usepackage{pgfplots}\pgfplotsset{compat=newest}
\pgfplotsset{soldot/.style={color=red,only marks,mark=*}} \pgfplotsset{holdot/.style={color=red,fill=white,only marks,mark=*}}

\begin{document}

\begin{center}
    \begin{tikzpicture}
        \begin{axis}[
            axis lines = center,
            xlabel = \(t\),
            ylabel = {\(\text{Hv}(t)\)},
            ymin=0,
            ymax=1.5,
            every axis plot/.append style={ultra thick},
            tick align=inside,
            clip mode = individual,
        ]

        \addplot [
            domain=0:5,
            samples=100,
            color=red,
        ]
        {1};

        \addplot [
            domain=-5:0,
            samples=100,
            color=red,
            clip = false,
        ]
        {0};
        \addplot[soldot] coordinates{(0,1)};
        \addplot[holdot] coordinates{(0,0)};
        \end{axis}
    \end{tikzpicture}
\end{center}

\end{document}

在此处输入图片描述

答案2

ymin您可以通过设置为较小的负值(例如)来使轴不可见-0.01。(我不知道你的soldotholdot风格,以下是我根据这个答案

\documentclass{article}

\usepackage{mathtools}
\usepackage{pgfplots}
\pgfplotsset{soldot/.style={color=red,only marks,mark=*}} \pgfplotsset{holdot/.style={color=red,fill=white,only marks,mark=*}}

\begin{document}

\begin{center}
    \begin{tikzpicture}
        \begin{axis}[
            axis lines = center,
            xlabel = \(t\),
            ylabel = {\(\text{Hv}(t)\)},
            ymin=-.01,
            ymax=1.5,
            every axis plot/.append style={ultra thick},
            tick align=inside
        ]

        \addplot [
            domain=0:5,
            samples=100,
            color=red,
        ]
        {1};

        \addplot [
            domain=-5:0,
            samples=100,
            color=red,
        ]
        {0};
        \addplot[soldot] coordinates{(0,1)};
        \addplot[holdot] coordinates{(0,0)};
        \end{axis}
    \end{tikzpicture}
\end{center}

\end{document}

在此处输入图片描述

相关内容