使用 TikZ 在背景图像上叠加坐标系

使用 TikZ 在背景图像上叠加坐标系

我正在尝试将使用外部软件生成的 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}

问题似乎是轴环境没有正确的宽度和高度,这就是为什么蓝线和虚线绿线不重叠的原因。

我尝试提取范围的宽度和高度并将其传递给轴环境的参数,但所有尝试都失败了。任何有关如何实现的建议都将不胜感激。

由上述代码生成的PDF文件。

答案1

按照@jake 的提示,进行一些近似,只需对 、 、 进行一些修改 xminxmax即可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}

在此处输入图片描述

相关内容