我正在寻找一种在 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}