我正在尝试使用 tikz 在图片上绘制坐标系。我正尝试重新创建附图中的坐标系作为测试,但遇到了一些问题
- 我如何改变坐标系的偏移量以使其位于图形的西南角?
- 我如何改变 x 轴和 y 轴的间距,以便它们按照我决定的步骤从最小值运行到最大值?
到目前为止,我的代码如下。这将绘制坐标系,但现在我必须将其移动到角落并更改间距和最大/最小值:
\documentclass[border=30pt]{standalone}
\usepackage{tikz}
\usepackage{tkz-euclide}
\begin{document}
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] at (0,0) {\includegraphics[width=\textwidth]{test.jpg}};
\tkzInit[xmax=8,ymax=1,xmin=0,ymin=0]
\tkzAxeXY
\end{tikzpicture}
\end{document}
答案1
这应该更具可读性和可工作性:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=0,xmax=7,ymin=0,ymax=7,
xtick={0,1.333,...,7},
ytick={0,1,...,7},
view={0}{90}]
\addplot3[surf,shader=interp]
coordinates {
(0,0,0) (7,0,0)
(0,7,1) (7,7,1)
};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
您可以按照所指示的链接方式在图像上进行绘制。几个循环可以节省输入时间,但仅此而已。
\documentclass[border=10pt,multi,tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\node [inner sep=0pt] (c) {\includegraphics[scale=3]{changeable}};
\begin{scope}[shift=(c.south west), x=(c.south east), y=(c.north west)]
\coordinate (x0) at (1,0);
\path (0,0) \foreach \i in {1,...,8} { ++({1/8.1},0) node (x\i) [below, font=\scriptsize] {\i 0} edge [thin] +(0,2.5pt)};
\path (0,1) coordinate (y0) \foreach \i in {1,...,8} { ++(0,-{1/8.1}) node (y\i) [left, font=\scriptsize] {\i 0} edge [thin] +(2.5pt,0)};
\foreach \i in {1,...,8} \draw [thin] (y0 -| x\i) edge [gray!50, thin] +(0,-2.5pt) (x0 |- y\i) -- +(-2.5pt,0);
\end{scope}
\end{tikzpicture}
\end{document}