我正在尝试将使用外部软件生成的 eps 文件加载到 TikZ 图片中并在其周围绘制坐标系,以便我可以叠加其他数据。
这个帖子 (使用 TikZ 在图像上绘图) 非常有用,但我仍在努力调整代码以适合我的目的。
我准备了一个小例子来说明这个问题。文件 b.eps 包含函数 f(x)=x 在区间 [-5:5] 上的图。
然后,我尝试在 TikZ 中绘制相同的函数,使得两条曲线重叠。
\documentclass{standalone}
\usepackage{pgfplots,tikz}
\begin{document}
\begin{tikzpicture}
\node[anchor=south west,inner sep=0] (image) at (0,0)
{\includegraphics[width=8cm]{b.eps}};
\begin{scope}[shift={(image.south west)},%
x={(image.south east)},%
y={(image.north west)}]
\begin{axis}[xmin=-5, xmax=5, %
ymin=-5, ymax=5, %
xlabel = $x$, ylabel = $y$] %
\draw[green, dashed, thick] (axis cs: -5,-5) -- (axis cs: 5,5);
\end{axis}
\end{scope}
\end{tikzpicture}
\end{document}
问题似乎是轴环境没有正确的宽度和高度,这就是为什么蓝线和虚线绿线不重叠的原因。
我尝试提取范围的宽度和高度并将其传递给轴环境的参数,但所有尝试都失败了。任何有关如何实现的建议都将不胜感激。
答案1
按照@jake 的提示,进行一些近似,只需对 、 、 进行一些修改 xmin
,xmax
即可ymin
获得ymax
良好的匹配
\documentclass[margin=5mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[enlargelimits=false, axis on top, axis equal image]
\addplot graphics [xmin=-5.1,xmax=5.1,ymin=-5.6,ymax=5.5] {b};
\draw[green, dashed, thick] (axis cs: -5,-5) -- (axis cs: 5,5);
\end{axis}
\end{tikzpicture}
\end{document}