Tikzpicture: 여러 축으로 캡션을 작성하는 방법

Tikzpicture: 여러 축으로 캡션을 작성하는 방법

tikzpicture를 사용하여 여러 축에 캡션을 추가하는 방법이 있나요? 각 축(및 해당 그림)이 화살표를 통해 다른 축에 연결되어 있으므로 하위 그림을 사용하고 싶지 않습니다.

나는 이것과 비슷한 것을 가지고 있습니다 :

\begin{figure}
\begin{tikzpicture}
\begin{axis} %axis 1
<code for plot here>
\draw node (bar1) at (some_coordinates){};
\end{axis}

\begin{axis}[ %axis 2
xshift = 3in
]
<code for plot here>
\draw node (bar2) at (some_coordinates) {};
\end{axis}

\begin{axis}[ %axis 3
xshift = 3in,
yshift = -3in,
]
<code for plot here>
\draw node (bar3) at (some_coordinates) {};
\end{axis}

\draw [->,thick,color=red,dashed] (bar1) -- (bar2);
\draw [->,thick,color=red,dashed] (bar2) -- (bar3);
\end{tikzpicture}
\end{figure}

각 축에 캡션을 추가할 수 있나요?

답변1

다중 축 환경은 연결하기 어렵지만 최소한 라이브러리를 groupplot로드하여 사용할 수 있습니다 groupplots. 예는 다음과 같습니다.

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.12}
\begin{document}

\begin{figure}[ht]
\centering
\begin{tikzpicture}

\begin{groupplot}[group style={group size=2 by 2},height=7cm,width=7cm]
\nextgroupplot
\addplot coordinates {(0,0) (1,1) (2,2)};
\draw node (bar1) at (1,0){bar1};
\nextgroupplot
\addplot coordinates {(0,2) (1,1) (2,0)};
\draw node (bar2) at (1,2){bar2};
\nextgroupplot
\addplot coordinates {(0,2) (1,1) (2,1)};
\draw node (bar3) at (1.5,1){bar3};
\nextgroupplot
\addplot coordinates {(0,2) (1,1) (1,0)};
\end{groupplot}

\draw [->,thick,color=red,dashed](bar1)--(bar2);
\draw [->,thick,color=red,dashed](bar2)--(bar3);

\end{tikzpicture}
\end{figure}

\end{document}

여기에 이미지 설명을 입력하세요

답변2

실제 번호가 매겨진 캡션을 원한다면 다음을 사용할 수 있습니다.\captionof 축 아래에 배치된 노드에서 사용할 수 있습니다. 원하는 경우 하위 그림 번호 매기기를 사용할 수 있습니다. 예를 참조하세요.https://tex.stackexchange.com/a/250032/586

\documentclass{article}
\usepackage{pgfplots}
\usepackage{capt-of}
\begin{document}
\begin{figure}
\begin{tikzpicture}[every axis/.style={width=7cm}]
\begin{axis}[name=axis1] %axis 1
\addplot {rnd};
\node (bar1) at (1,1){};
\end{axis}

\begin{axis}[ %axis 2
xshift = 3in,
name=axis2
]
\addplot {rnd};
\node (bar2) at (1,1) {};
\end{axis}

\begin{axis}[ %axis 3
xshift = 3in,
yshift = -3in,
name=axis3
]
\addplot {rnd};
\node (bar3) at (1,1) {};
\end{axis}

\draw [->,thick,color=red,dashed] (bar1) -- (bar2);
\draw [->,thick,color=red,dashed] (bar2) -- (bar3);

\begin{scope}[every node/.style={text width=7cm,align=left}]
\node [below] at (axis1.south) {\captionof{figure}{First caption}};
\node [below] at (axis2.south) {\captionof{figure}{Second caption}};
\node [below] at (axis3.south) {\captionof{figure}{Third caption}};
\end{scope}
\end{tikzpicture}
\end{figure}
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보