pgfplots 中的叠加图(画中画,PIP)

pgfplots 中的叠加图(画中画,PIP)

我想在现有图表上绘制另一张图表,以利用未使用的区域。使用负片baseline和 ,我已接近我想要的效果hskip。不幸的是,后者弄乱了水平对齐,也许可以使用框来修复?此外,控制最终位置是通过目测完成的。

无论如何,有没有更优雅的方式来做我想要的事情?我已经在 Google 上进行了广泛的搜索,但似乎之前从未讨论过情节叠加。

\documentclass[a4paper]{article}
\usepackage{pgfplots}\pgfplotsset{compat=newest}
\usepackage[show frame]{geometry}  % show text edges
\begin{document}
\begin{figure}[t!]\centering
  \begin{tikzpicture}\begin{axis}
    \addplot+ [domain=0:360, samples=101, mark=none] {sin(x)};
  \end{axis}\end{tikzpicture}    
\end{figure}
\begin{figure}[t!]\centering
  \begin{tikzpicture}\begin{axis}
    \addplot+ [domain=0:360, samples=101, mark=none] {sin(x)};
  \end{axis}\end{tikzpicture}\hskip -7cm
  \begin{tikzpicture}[baseline=-1cm]\begin{axis}[width=120pt]
    \addplot+ [domain=0:360, samples=101, mark=none] {sin(2*x)/2};
  \end{axis}\end{tikzpicture}
\end{figure}
\hfill  % so the figures move up
\end{document}

未对齐的叠加图表

答案1

如果你想让某个东西相对于其他东西放置,那么保持相同的位置会容易得多tikzpicture。以下是第二个图放置在第一个图的特定坐标处的示例:

\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot+ [domain=0:360, samples=101, mark=none] {sin(x)};
\coordinate (subplot) at (20,-0.9);
\end{axis}
\begin{axis}[width=120pt, at=(subplot), tick label style={font=\small}]
\addplot+ [domain=0:360, samples=101, mark=none] {sin(2*x)/2};
\end{axis}
\end{tikzpicture}
\end{document}

一个图里面有一个图

您也可以将第二个图放置在 TikZ 图片中的某个坐标处或相对于第一个图的角落。

相关内容