将网格限制在轴的特定区域

将网格限制在轴的特定区域

大致如下图所示,

\documentclass[]{article}

\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[       
            width=10cm,
            height=4cm,
            xmin=0,
            xmax=10,
            ymin=-1,
            ymax=5,
            xmajorgrids=true,
            ymajorgrids=true,
            axis x line=center,
            axis y line=center
        ]   
        \end{axis}
        
    \end{tikzpicture}
\end{document}

在此处输入图片描述

我想删除位于负 y 范围内的灰色网格线,以使 yticklabels 不受干扰。所以基本上我只想让网格位于正 y 范围内。有没有办法实现这一点,而不用单独绘制每条线?

对以下解决方案的评论:在这种情况下,缩短命令会延长 y 轴而不延长网格,从而解决了问题。

答案1

\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[       
width=10cm, height=4cm,
xmin=0, xmax=10,
ymin=0, ymax=5,
grid=major,
axis lines=center,
y axis line style={shorten <=-0.5cm},
]   
\end{axis}
\end{tikzpicture}
\end{document}

带网格的图形

相关内容