我希望在 y 轴上有一个网格,尽管没有绘制轴 y 线,可以通过设置axis y line=none
或 来hide y axis
绘制。在下面的 MWE 中,当我使用所述的额外 y 刻度方法时,不会绘制沿 y=0 的水平线在其中一个答案中。不显示y轴怎么办?
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
extra y ticks = 0,
extra y tick style = { grid = major },
domain=0:360,
hide y axis,
]
\addplot {sin(x)};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
键hide y axis
完全禁用所有刻度和线条,extra
否则。相反,您可以通过设置来停止绘制轴线
separate axis lines,
y axis line style= { draw opacity=0 }
必须separate axis lines
能够仅将线型指定给 y 轴,因为通常轴是用单一路径绘制的。请注意,您必须使用draw opacity=0
来隐藏 y 轴,通常的方法draw=none
在这里不起作用。
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=0:360,
ytick=0,
separate axis lines,
y axis line style= { draw opacity=0 },
ymajorgrids,
tick pos = left
]
\addplot {sin(x)};
\end{axis}
\end{tikzpicture}
\end{document}
如果你想取消刻度标记和刻度标签,最简单的方法可能是使用以下方法之一如何在绘图中添加零线?绘制不使用刻度/网格机制的零线。
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=0:360,
hide y axis,
before end axis/.code={
\draw [/pgfplots/every axis grid] ({rel axis cs:0,0}|-{axis cs:0,0}) -- ({rel axis cs:1,0}|-{axis cs:0,0});
},
axis lines*=left
]
\addplot {sin(x)};
\end{axis}
\end{tikzpicture}
\end{document}