TikZ 图例条目中的多个文本对齐

TikZ 图例条目中的多个文本对齐

我正在寻找一种在 TikZ 图例中进行多重对齐的简单方法。

我有以下生成 TikZ 图形的代码:

\documentclass[11pt,a4paper]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[%
width=4in,height=3in,at={(0in,0in)},
scale only axis,
xmin=0,xmax=10,ymin=0,ymax=5,
legend style={legend cell align=left,align=left},
]
\addplot [color=red]
  table[row sep=crcr]{%
0   5\\
10   0\\
};
\addlegendentry{First: 1};
\addplot [color=blue]
  table[row sep=crcr]{%
0   4\\
10   1\\
};
\addlegendentry{Second: 2};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

该图如下所示:

在此处输入图片描述

除了图例中的数字应该对齐之外,这很好。所以我想要的是这样的:

在此处输入图片描述

我怎样才能在 TikZ 图例中实现这种对齐?

答案1

简单的解决方案是选择或计算宽度并使用\makebox\hbox to创建每个图例条目。

您还可以使用表格创建自己的图例。请参阅这里

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\newlength{\tempdima}
\begin{document}
%\begin{figure}
\settowidth{\tempdima}{Second:\quad 2}% longest entry
\begin{tikzpicture}
\begin{axis}[%
width=4in,height=3in,at={(0in,0in)},
scale only axis,
xmin=0,xmax=10,ymin=0,ymax=5,
legend style={legend cell align=left,align=left},
]
\addplot [color=red]
  table[row sep=crcr]{%
0   5\\
10   0\\
};
\addlegendentry{\hbox to \tempdima {First:\hfill 1}};
\addplot [color=blue]
  table[row sep=crcr]{%
0   4\\
10   1\\
};
\addlegendentry{\makebox[\tempdima]{Second:\hfill 2}};
\end{axis}
\end{tikzpicture}
%\end{figure}
\end{document}

相关内容