如何将一张 tikz 图片与另一张叠加

如何将一张 tikz 图片与另一张叠加

\begin{tikzpicture}
...
\end{tikzpicture}

\begin{tikzpicture}
...
\end{tikzpicture}

这样,两张图片就彼此相邻了。我希望后者正好位于第一张图片的上方。有没有内置方法可以实现这一点,还是我必须使用 hspace 或 s.th?

第一张图片被外部化了,所以我想这会阻止覆盖/记住图片的功能?!

答案1

在这种情况下,您不需要[remember picture][overlay]。只需在一个 tikzpicture 中执行此操作:将第一张图片中的代码放在scopewith内local bounding box=L;并将第二张图片中的代码放在scopewith内[shift={(L.center)}]

在此处输入图片描述

\documentclass{article}
\usepackage{tikz,lipsum,amsmath}
\begin{document}
\lipsum[1]  

\begin{center}
\begin{tikzpicture}
\begin{scope}[local bounding box=L]
\draw[violet] (0,0)--(0,3.5);
\draw[cyan,line width=2pt] (-1,0)--(4,0)--(0,3.5)--cycle;
\end{scope}

\fill (L.center) circle(.5);    

\begin{scope}[shift={(L.center)}]
\draw[red,line width=1mm] (0,0) circle(1.5);
\end{scope}
\end{tikzpicture}
\end{center}

\lipsum[2]

\end{document}

答案2

正如评论中所提到的,您可以axis在环境中定义多个环境,使用库来tikzpicture命名它们,然后将它们彼此相对定位。calcat={($ (plot1.east) + (1cm,0) $)},anchor=west,

在此处输入图片描述

\documentclass[border=5pt]{standalone}

\usepackage{pgfplots}

\pgfplotsset{compat=newest}
\usetikzlibrary{calc}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            name=plot1,
            title=plot1,
            title style={
                at={(axis description cs:0.5,0.8)}, 
                anchor=north},
            ]
            \addplot[
            color=blue,
            ] 
            coordinates {
                (0,0)
                (1,1)
            };
        \end{axis}
        
        \begin{axis}[
            name=plot2,
            title=plot2,
            title style={
                at={(axis description cs:0.5,0.8)}, 
                anchor=north},
            at={($ (plot1.east) + (1cm,0) $)},
            anchor=west,
            ]
            \addplot[
            color=red,
            ] 
            coordinates {
                (0,0)
                (1,1)
            };
        \end{axis}
    
        \begin{axis}[
            name=plot3,
            title=plot3,
            title style={
                at={(axis description cs:0.5,0.8)}, 
                anchor=north},
            at={($ (plot1.south) - (0,1cm) $)},
            anchor=north,
            ]
            \addplot[
            color=green,
            ] 
            coordinates {
                (0,0)
                (1,1)
            };
        \end{axis}
    
        \begin{axis}[
            name=plot4,
            title=plot4,
            title style={
                at={(axis description cs:0.5,0.8)}, 
                anchor=north},
            at={($ (plot3.east)+(1cm,0) $)},
            anchor=west,
            ]
            \addplot[
            color=orange,
            ] 
            coordinates {
                (0,0)
                (1,1)
            };
        \end{axis}
    \end{tikzpicture}
\end{document}

相关内容