less than 1 minute read

pgfplotsで凡例の設定を行う際に個人的頻出の項目を簡単に紹介する.より詳しい説明は公式ドキュメントも参照のこと.

pgfplotsにおける凡例の見た目の設定

pgfplotsにおける凡例の設定は代表的なところではlegendの場所を指定するlegend pos,凡例文字の左寄せや右寄せを指定するlegend cell align,凡例を何×何で表示するかを決定するlegend columnsなどがある.詳細はpgfplotマニュアルの4.8.5 Legend Appearanceに記載がある.

legend pos = north east,
legend columns=3,
legend cell align=left,

これらはlegend styleでまとめて指定することも可能.

legend style={legend pos = north east, legend columns=3, legend cell align=left}

凡例の場所指定について

一番単純にやるにはlegend posで指定する.これは凡例を四隅のどこに配置するかの指定で,例えば右上ならnorth east,左下ならsouth westのように方角で指定する.グラフ外に凡例を指定する場合は追加でouterを指定して

legend pos = outer north east,

のようにする.

さらに細かく自分で座標を指定したい場合はatコマンドで指定できる.この時の座標はグラフの左下が(0,0),右上が(1,1)となる相対座標で,したがって1より大きい値を指定すればグラフ外に凡例を設定できる.このときanchorで「どこの点がatの座標に対応するか」を指定する.例えばanchor=centerなら凡例の中心点がatで指定した座標に対応する.

legend style={at={(0.5,1.12)},anchor=north}

凡例の透明度の指定

透明度はopacityで指定可能で,特に下地の透明度をfill opacityで,描画の透明度をdraw opacityで,文字の透明度をtext opacityで指定できる.

legend style={fill=white, fill opacity=1, draw opacity=1, text opacity=1},

凡例ごとに指定を変更する

例えばグラフの線は太さ2で書いたけど,凡例では太さ4でより太く見せたい,というような場合,\addlegendimageコマンドで細かく指定できる.このとき,addplotの方の凡例を表示しないようにするためにはオプションで[forgot plot]を指定する.以下に例を示す.

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
    \begin{axis}
    \addplot+[forget plot] coordinates {(1,2) (2,1)};
\addlegendimage{line legend,green} % or mark=none?
\addlegendentry{Simulation}
\addlegendimage{line legend,blue}
\addlegendentry{Measurement}
\addlegendimage{green,mark=square}
\addlegendentry{Set 1}
\addlegendimage{blue,mark=o}
\addlegendentry{Set 2}
    \end{axis}
\end{tikzpicture}
\end{document}

参考文献

Opacity of a legend fill in pgfplots - TeX - LaTeX Stack Exchange pgfplots - How to modify the image of an legend entry - TeX - LaTeX Stack Exchange