绘制多个子图

绘制多个子图

我目前正在尝试记录一个需要进行大量图像处理的项目。问题是,展示微小的细节往往很重要,但也需要从大局出发进行参考。

我想存档的内容如下:

绘制多个子图

图 1a 中有一张概览图,图 1b 中显示了该图片的放大部分。到目前为止,我能够使用边界框很好地做到这一点。但是,最好添加一个指示符,例如虚线红线以进行澄清。当一张图像中有多个区域需要详细视图时,这一点尤其重要。

我需要做的另一件事是在多幅图像上添加标尺,如图 2 所示,就像在图形程序中一样。

答案使用 TikZ 在图像上绘图指出我视觉叠加生成器这是解决案例 1 的一个很好的替代方法。

更新 敲击指向了 -library spy。通过这个,我找到了如何为大图像的各部分创建放大的子图和相应的框其中有解决方案和很多很好的例子。

答案1

您可以node在每个子图周围使用,然后稍后绘制线条

\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{subcaption}

\begin{document}
\begin{figure}
\begin{subfigure}[b]{.45\linewidth}
\centering
\tikz[overlay, remember picture] \node[anchor=south, inner sep=0] (model) {\includegraphics[width=\linewidth]{Mycena_interrupta}};
\caption{Model}
\end{subfigure}
\hfill
\begin{subfigure}[b]{.45\linewidth}
\centering
\tikz[overlay, remember picture] \node[anchor=south, inner sep=0] (replica) {\includegraphics[width=\linewidth]{Mycena_interrupta}};
\caption{Replica}
\end{subfigure}
\caption{A figure}
\begin{tikzpicture}[overlay, remember picture]
\draw[red, thick] ([shift={(-3mm, 8mm)}]model.west)--([shift={(3mm, 8mm)}]replica.east);
\draw[red, thick] ([shift={(-3mm, -8mm)}]model.west)--([shift={(3mm, -8mm)}]replica.east);
\draw[red, blue] ([shift={(-3mm, -5mm)}]model.west)--([shift={(3mm, -5mm)}]replica.east);
\end{tikzpicture}
\end{figure}
\end{document}

在此处输入图片描述

更新:(第二版)

我将保留以前的解决方案,因为它已经被接受,但我认为不在overlay子图节点中使用可以简化代码,并且它比原来的更正确:

\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{subcaption}

\begin{document}
\begin{figure}
\begin{subfigure}[b]{.45\linewidth}
\centering
\tikz[remember picture] \node[inner sep=0] (model) {\includegraphics[width=\linewidth]{Mycena_interrupta}};
\caption{Model}
\end{subfigure}
\hfill
\begin{subfigure}[b]{.45\linewidth}
\centering
\tikz[remember picture] \node[inner sep=0] (replica) {\includegraphics[width=\linewidth]{Mycena_interrupta}};
\caption{Replica}
\end{subfigure}
\caption{A figure}
\begin{tikzpicture}[overlay, remember picture]
\draw[red, thick] ([shift={(-3mm, 8mm)}]model.west)--([shift={(3mm, 8mm)}]replica.east);
\draw[red, thick] ([shift={(-3mm, -8mm)}]model.west)--([shift={(3mm, -8mm)}]replica.east);
\draw[red, blue] ([shift={(-3mm, -5mm)}]model.west)--([shift={(3mm, -5mm)}]replica.east);
\end{tikzpicture}
\end{figure}
\end{document}

相关内容