帮助解决 pgfplot 中的网格线问题

帮助解决 pgfplot 中的网格线问题

xmin=-11这里没什么令人兴奋的。我有一个带有、xmax=11ymin=-11和 的图ymax=11。我想使用环境grid中的选项axis来绘制特定的网格。网格中的所有水平和垂直线都将在 x=-10.5 和 x=10.5 之间或 y=-10.5 和 y=10.5 之间用 和 绘制line width=.1ptdraw=gray!10水平线y=-10y=-5y=5y=10以及垂直线x=-10x=-5x=5x=10将用 和 绘制line width=.2pt。、- 、和处draw=gray!50的刻度标记将在两个轴上和这些网格线上排版。我认为轴选项、和会将刻度标记放在网格上。-105510xtick={-10,-5,5,10}ytick={-10,-5,5,10}ticklabel style={font=\tiny,fill=white},

\documentclass{amsart}
\usepackage{tikz}
\usetikzlibrary{calc}

\usepackage{pgfplots}
\pgfplotsset{compat=1.11}


\begin{document}
\begin{tikzpicture}
\begin{axis}[grid style={line width=.1pt, draw=gray!10},major grid style={line width=.2pt,draw=gray!50},
    xmin=-11.75,xmax=11.75,
    ymin=-11.75,ymax=11.75,
    xtick={},ytick={},
    minor tick num=5,
    enlargelimits={abs=0},
    ticklabel style={font=\tiny,fill=white},
    axis lines=middle,
    axis line style={latex-latex},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
]

\coordinate (O) at (0,0);
\node[fill=white,circle,inner sep=0pt] (O-label) at ($(O)+(-135:10pt)$) {$\scriptstyle{O}$};

\end{axis}
\end{tikzpicture}

\end{document}

答案1

也许我遗漏了一些明显的选项,但我认为您无法将网格缩小到某些坐标。手册中没有任何内容。您可以通过拉长轴来伪造这一点,以便网格看起来更包含在更少的坐标中。

我将网格线的数量设置为特定值,仅供演示。但您可以通过更改此命令中的值来增加/减少其数量(数字越大 = 线条越多):

minor tick num=5,

正如我在评论中所说的那样,您可以在本地更改网格样式。只需将这些选项粘贴到\begin{axis}要更改的图的选项中即可。我更新了下面的示例以显示这一点。

输出

图1

代码

\documentclass{amsart}
\usepackage[margin=2cm]{geometry}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}

\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    xmin=-11,xmax=11,
    ymin=-11,ymax=11,
    grid=both,
    grid style={line width=.1pt, draw=gray!10},
    major grid style={line width=.2pt,draw=gray!50},
    axis lines=middle,
    minor tick num=5,
    enlargelimits={abs=0.5},
    axis line style={latex-latex},
    ticklabel style={font=\tiny,fill=white},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
]

\coordinate (O) at (0,0);
\node[fill=white,circle,inner sep=0pt] (O-label) at ($(O)+(-135:10pt)$) {$O$};

\end{axis}
\begin{axis}[xshift=9cm,
    xmin=-11,xmax=11,
    ymin=-11,ymax=11,
    grid=both,
    axis lines=middle,
    minor tick num=5,
    enlargelimits={abs=0.5},
    axis line style={latex-latex},
    ticklabel style={font=\tiny,fill=white},
    xlabel style={at={(ticklabel* cs:1)},anchor=north west},
    ylabel style={at={(ticklabel* cs:1)},anchor=south west}
]

\coordinate (O) at (0,0);
\node[fill=white,circle,inner sep=0pt] (O-label) at ($(O)+(-135:10pt)$) {$O$};

\end{axis}
\end{tikzpicture}
\end{document}

相关内容