Pgfplots:在简单的笛卡尔平面中限制网格线或延伸 xy 轴的箭头

Pgfplots:在简单的笛卡尔平面中限制网格线或延伸 xy 轴的箭头

我正在尝试使用 pgfplots 创建一个简单的笛卡尔平面,其中 x 和 y 轴的正端略微延伸到方形网格之外。到目前为止,我所得到的如下:

在此处输入图片描述

\documentclass{article}

\usepackage{tikz, pgfplots}

\begin{document}
\begin{center}
    \begin{tikzpicture}
        \begin{axis}[
            axis lines=middle,
            axis line style=->,
            xmin=-10,xmax=10,
            ymin=-10,ymax=10,
            grid=both,
            grid style={draw=gray!25},
            xtick={-10, -8, ..., 10}, xtick style={yshift=-0.5ex},
            ytick={-10, -8, ..., 10}, ytick style={xshift=-0.5ex},
            yticklabel style={xshift=-0.5ex},
            minor tick num=1,
            minor tick length=0.5ex,
            minor x tick style={yshift=0.25ex}, minor y tick style={xshift=0.25ex},
        ]
        \end{axis}
    \end{tikzpicture}
\end{center}
\end{document}

作为参考,这是我尝试复制的模板。

在此处输入图片描述

通过扩展 xmax/ymax 值,网格线默认会延伸到这些值。有人对限制网格长度或延长正轴端有什么建议吗?

答案1

欢迎!您可以使用shorten并使用负距离。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{center}
    \begin{tikzpicture}
        \begin{axis}[
            axis lines=middle,
            axis line style={-stealth,shorten >=-3mm},
            xmin=-10,xmax=10,
            ymin=-10,ymax=10,
            grid=both,
            grid style={draw=gray!25},
            xtick={-10, -8, ..., 10}, xtick style={yshift=-0.5ex},
            ytick={-10, -8, ..., 10}, ytick style={xshift=-0.5ex},
            yticklabel style={xshift=-0.5ex},
            minor tick num=1,
            minor tick length=0.5ex,
            minor x tick style={yshift=0.25ex}, minor y tick style={xshift=0.25ex},
        ]
        \end{axis}
    \end{tikzpicture}
\end{center}
\end{document}

在此处输入图片描述

或者使用 x 和 y 标签。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{center}
    \begin{tikzpicture}
        \begin{axis}[
            axis lines=middle,
            axis line style={-stealth,shorten >=-3mm},
            xmin=-10,xmax=10,
            ymin=-10,ymax=10,
            xlabel=$x$,
            every axis x label/.style={at={(xticklabel cs:1,0)},
            yshift=1.8em,
            anchor=south west},
            ylabel=$y$,
            every axis y label/.style={at={(yticklabel cs:1,0)},
            xshift=2.7em,yshift=0.2em,
            anchor=south east},
            grid=both,
            grid style={draw=gray!25},
            xtick={-10, -8, ..., 10}, xtick style={yshift=-0.5ex},
            ytick={-10, -8, ..., 10}, ytick style={xshift=-0.5ex},
            yticklabel style={xshift=-0.5ex},
            minor tick num=1,
            minor tick length=0.5ex,
            minor x tick style={yshift=0.25ex}, minor y tick style={xshift=0.25ex},
        ]
        \end{axis}
    \end{tikzpicture}
\end{center}
\end{document}

在此处输入图片描述

相关内容