使用 pgfplots 向图例框添加图例标题?

使用 pgfplots 向图例框添加图例标题?

我在用很棒的pgfplots包裹绘制一些图表。我通常使用\addlegendentry并得到一个不错的默认图例框。图例框的放置和布局有一些选项(例如列数)。

对于某些情节,我想在图例框内添加标题。

无法找到有关此内容手册。有谁知道自定义图例框的方法是什么吗?

答案1

您也许可以使用该\addlegendimage命令,例如来自 pgfplots-features 邮件列表的此讨论

举个例子,通过一个小\hspace技巧,将标题放置在图例框的更中央位置:

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[legend pos=south east]
   \addlegendimage{empty legend}
   \addplot {sqrt(x)}; 
   \addplot {ln(x)}; 

   \addlegendentry{\hspace{-.6cm}\textbf{A title}}
   \addlegendentry{$\sqrt{x}$}
   \addlegendentry{$\ln{x}$}
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

为了多样化,这里还有几种手动方法。在每种情况下,图例和标题都是单独的实体,然后绘制框架。

\documentclass[border=5mm,tikz]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{fit}
\begin{document}
\begin{tikzpicture}
\begin{axis}[legend style={at={(rel axis cs:0.9,0.1)},above left,name=legend,draw=none}]
   \addplot {sqrt(x)}; 
   \addplot {ln(x)}; 

   \addlegendentry{$\sqrt{x}$}
   \addlegendentry{$\ln{x}$}
\end{axis}
   \node [above,font=\bfseries] (legendtitle) at (legend.north) {Legend title};
   \node [fit=(legendtitle)(legend),draw,inner sep=0pt] {};
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[legend style={draw=none,legend to name=leg}]
   \addplot {sqrt(x)}; 
   \addplot {ln(x)}; 

   \addlegendentry{$\sqrt{x}$}
   \addlegendentry{$\ln{x}$}

   % place legend
   \node [above left] (L) at (rel axis cs:0.9,0.1) {\ref{leg}};
   % Add title
   \node [above,font=\bfseries] (LT) at (L.north) {Legend title};
   % if needed, add frame
   \node [fit=(L)(LT),draw,inner sep=0pt] {};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容