使用 tikz-euclide 自定义网格

使用 tikz-euclide 自定义网格

所以我有以下使用该tkz-euclide包的代码

\documentclass{article}
\usepackage{tikz}
\usepackage{tkz-euclide}
\begin{document}
\begin{figure}[h]
\begin{tikzpicture}
   \tkzInit[xmax=6,ymax=6,xmin=-6,ymin=-6]
   \tkzGrid
   \tkzAxeXY
   \tkzDefPoint(1,1){E_{1, 1}}
   \tkzDefPoint(2,3){E_{2, 3}}
   \tkzDrawPoints(E_{1, 1}, E_{2, 3})
   \tkzLabelPoints(E_{1, 1}, E_{2, 3})
  \tkzText[above](0,6.75){A Sample Grid}
  \end{tikzpicture}
\end{figure}
\end{document}

输出结果如下

在此处输入图片描述

现在我想对此进行一些更改。首先,我想将轴标签从“x”和“y”更改为“p”和“q”。

其次,我想将此网格上的每个点 (p, q) 标记为“E_{p, q}”。我不确定如何有效地做到这一点。在除 LaTeX 之外的任何其他编程语言中,我都可以使用 for 循环来自动执行此过程。然而,在这里,我似乎必须手动标记此网格上的所有 175 个点,这是我不希望做的事情。

我怎样才能对这个网格做出这两项更改?


更新:根据下面有用的评论,我制作了以下试验性代码来解决我想要做的第二个更改,但是它似乎存在错误,因为它无法编译

\documentclass{article}
\usepackage{tikz}
\usepackage{tkz-euclide}
\begin{document}
\begin{figure}[h]
\begin{tikzpicture}
   \tkzInit[xmax=6,ymax=6,xmin=-6,ymin=-6]
   \tkzGrid
   \tkzAxeXY
   \foreach\x in {-6,...,6}{
       \foreach\y in {-6,...,6}{
           \tkzDefPoint(\x,\y){E_{\x, \y}}
           \tkzDrawPoint(E_{\x, \y})
           \tkzLabelPoint(E_{\x,\y})
       }
   }
  \tkzText[above](0,6.75){A Sample Grid}
  \end{tikzpicture}
\end{figure}
\end{document}

我走的路正确吗?为什么上述代码不能编译?

答案1

TikZ 的命令grid和循环foreach非常完美。

在此处输入图片描述

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
%\pagecolor{yellow!25}  
\begin{tikzpicture}[scale=1.28]
\draw[blue!50] (-6.5,-6.5) grid (6.5,6.5);
\draw[-stealth,thick] (-6.5,0)--(6.5,0) node[below right]{$p$}; 
\draw[-stealth,thick] (0,-6.5)--(0,6.5) node[above left]{$q$};
\foreach \i in {-6,...,-1,1,2,...,6}
\draw[very thick] 
(\i,.1)--(\i,-.1) node[below,fill=white]{\i}
(-.1,\i)--(.1,\i) node[right,fill=white]{\i};
\foreach \p in {-6,...,-1,1,2,...,6}
\foreach \q in {-6,...,-1,1,2,...,6}
\fill[red] (\p,\q) circle(2pt) node[below right,black]{$E_{\p,\q}$};
\end{tikzpicture}
\end{document}

答案2

\documentclass{article}
\usepackage{tkz-euclide}
\begin{document}
\begin{figure}[h]
\begin{tikzpicture}
   \tkzInit[xmax=6,ymax=6,xmin=-6,ymin=-6]
   \tkzGrid
    \tkzDrawX[label = $p$]
    \tkzDrawY[label = $q$]
    \tkzLabelXY
    \tkzDefPoint(1,1){E_{1, 1}}
    \tkzDefPoint(2,3){E_{2, 3}}
    \tkzDrawPoints(E_{1, 1}, E_{2, 3})
    \tkzLabelPoints(E_{1, 1}, E_{2, 3})
    \tkzText[above](0,6.75){A Sample Grid}

    \foreach \p in {-6,...,-1,1,2,...,6}
    \foreach \q in {-6,...,-1,1,2,...,6}
          { \tkzDefPoint(\p,\q){E_{\p, \q}}
            \tkzDrawPoint(E_{\p, \q})
             \tkzLabelPoints(E_{\p, \q}, E_{\p, \q})}
  \end{tikzpicture}
\end{figure}
\end{document}

在此处输入图片描述

相关内容