如何手动绘制水平图例并将其正确放置在 tikz 中?

如何手动绘制水平图例并将其正确放置在 tikz 中?

这是我用来绘制一些图表的 tikz 代码。

\documentclass{article}
\usepackage{tikz,subfig}
\begin{document}

\begin{figure}
  \centering
  \subfloat[Iteration Domain for a Tile]{
      \begin{tikzpicture}
        \draw (0,0) rectangle (3.8,3.8);
      \end{tikzpicture}
  }
  \subfloat[Convex Bounding Boxes]{
      \begin{tikzpicture}
        \draw (0,0) rectangle (3.8,3.8);
      \end{tikzpicture}
  }
  \subfloat[Disjoint Bounding Boxes]{
      \begin{tikzpicture}
        \draw (0,0) rectangle (3.8,3.8);
      \end{tikzpicture}
  }
  \caption{Bounding boxes for disjoint union of data regions}
\end{figure}

\end{document}

输出结果如下:

在此处输入图片描述

我想要画这样的东西:

在此处输入图片描述

我该怎么做?

主要有两点:

  1. 我想把传奇放在首位。
  2. 我想要为(a)添加一些描述,并为(b)和(c)添加一些描述,如上图所示。

答案1

可以使用pgfplots包将图例放在顶部,但 (b) 和 (c) 的共享标题有点不合时宜(即定位是手动的)。我能够想出以下内容。

\documentclass{article}
\usepackage{tikz,subfig}
\usepackage{pgfplots}
\pgfplotsset{width=5cm,compat=newest,every axis legend/.append style={at={(0.5,1.35)}, anchor=south}}
\begin{document}

\begin{figure}
  \centering
  \subfloat[Iteration Domain for a Tile]{
      \begin{tikzpicture}
        \begin{axis}[title=Title]
        \addplot {x};
        \addlegendentry{Legend a}
        \end{axis}
      \end{tikzpicture}
  }
  \subfloat[Convex Bounding Boxes]{
      \begin{tikzpicture}
        \begin{axis}[
        title style={at={(1.17,1)},overlay},
        title=Shared title
        ]
        \addplot [color=red,mark=o]{x^2};
        \addlegendentry{Legend b}
        \end{axis}
      \end{tikzpicture}
  }
  \subfloat[Disjoint Bounding Boxes]{
      \begin{tikzpicture}
        \begin{axis}
        \addplot[color=black,mark=+] {x^3};
        \addlegendentry{Legend c}
        \end{axis}
      \end{tikzpicture}
  }
  \caption{Bounding boxes for disjoint union of data regions}
\end{figure}
\end{document}

在此处输入图片描述

相关内容