隣り合う2つのTikZグラフの下に凡例を配置する

隣り合う2つのTikZグラフの下に凡例を配置する

tikz に隣り合った 2 つのグラフがあり、それらは表形式で区切られています。

グラフにはそれぞれ 3 本の線が表示されており、両方のグラフの線の種類は同じです。したがって、それぞれの凡例ではなく、共通凡例が必要です。

2 つの図の下に、中央揃えで水平に凡例を追加するにはどうすればよいですか?

スタック上でいくつかの回答を見ました: グラフの下に凡例を配置するにはどうすればいいですか? ただし、これにより凡例がグラフの下に配置されますが、グラフが 2 つあるので凡例はそれらの下の中央に水平に配置する必要があります。

基本的に、私が欲しいのは次の形式のボックスです:

------------------------------------------------------------------------------------
| <line1> Legend description <line2> Legend description <line3> Legend description |
------------------------------------------------------------------------------------

<line>線のスタイルはどこにありますか。このボックスは 2 つのグラフの下に中央に配置する必要があります。

これはコードです。匿名性を保つために実際のプロットとその他のいくつかのものを削除しました。

begin{figure}[!hbt]
\centering
\begin{tabular}{ll}
\resizebox{175pt}{!}{%
\begin{tikzpicture}
  \begin{axis}[
    xlabel=x,
    ylabel=y,
    grid=both,
    grid style={line width=.1pt, draw=gray!10},
    major grid style={line width=.2pt,draw=gray!50},
    axis lines=middle,
    minor tick num=5,]
    \addplot coordinates {};
    \addplot coordinates {};
    \addplot coordinates {};
  \end{axis}
\end{tikzpicture}
}
&
\resizebox{200pt}{!}{%
\begin{tikzpicture}
  \begin{axis}[
    xlabel=x,
    ylabel=y,
    grid=both,
    grid style={line width=.1pt, draw=gray!10},
    major grid style={line width=.2pt,draw=gray!50},
    axis lines=middle,
    minor tick num=5,]
    \addplot coordinates {};
    \addplot coordinates {};
    \addplot coordinates {};
  \end{axis}
\end{tikzpicture}
}
\end{tabular}

\caption{}
\label{}
\end{figure}

答え1

キーを使用すると、必要なものを取得できますlegend to name。これは、pgfplots マニュアルの 265 ページのセクション 4.9.7 に記載されています。

次の例はマニュアルから抜粋したものです。

\begin{center}% note that \centering uses less vspace...
    \begin{tikzpicture}
        \begin{axis}[
            legend columns=-1,
            legend entries={$(x+0)^k$;,$(x+1)^k$;,$(x+2)^k$;,$(x+3)^k$},
            legend to name=named,
            title={$k=1$},
        ]
            \addplot {x};
            \addplot {x+1};
            \addplot {x+2};
            \addplot {x+3};
        \end{axis}
    \end{tikzpicture}

    \begin{tikzpicture}
        \begin{axis}[
            title={$k=2$}
        ]
            \addplot {x^2};
            \addplot {(x+1)^2};
            \addplot {(x+2)^2};
            \addplot {(x+3)^2};
        \end{axis}
    \end{tikzpicture}

    \begin{tikzpicture}
        \begin{axis}[
            title={$k=3$}
        ]
            \addplot {x^3};
            \addplot {(x+1)^3};
            \addplot {(x+2)^3};
            \addplot {(x+3)^3};
        \end{axis}
    \end{tikzpicture}
    \\

    \ref{named}
\end{center}

関連情報