![线绘制在 x 轴下方](https://linux22.com/image/450524/%E7%BA%BF%E7%BB%98%E5%88%B6%E5%9C%A8%20x%20%E8%BD%B4%E4%B8%8B%E6%96%B9.png)
我想要将线绘制在 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}
提前致谢
答案1
请注意pgfplots
通常绘制在情节轨迹下方。
您的问题是由剪辑行为引起的:默认情况下,所有图都剪辑到坐标区域。
如果你仔细观察:
在水平轴上,线在 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
。(我不知道你的soldot
和holdot
风格,以下是我根据这个答案。
\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}