如何在文本图例条目旁边获得更明显的图例图像A, B, C
?仅填充条形图的默认设置似乎仅由一条细细的垂直线组成,这使得辨别多种颜色变得相当困难:
我认为我的答案与更改图例图像代码密切相关,如下所示这个答案,但我无法让(重命名ybar
为xbar
)/pgfplots/xbar legend/.style
段影响我的输出。
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xbar stacked,
legend pos=south east,
y post scale=.5]
\addplot[fill,blue!50] coordinates {(1,0) (2,1) (2,2) (3,3)};
\addplot[fill,red!50] coordinates {(1,0) (2,1) (2,2) (3,3)};
\addplot[fill,brown!50] coordinates {(1,0) (2,1) (2,2) (3,3)};
\legend{A,B,C} % why so narrow, my dear legend images?
\end{axis}
\end{tikzpicture}
\end{document}
两个更新
- 添加
xbar legend=fill
选项axis
即可填充图例图像。 - 差不多了:
legend image post style={yscale=2,yshift=-.75ex}
来自这个答案使填充区域几乎呈正方形,这样我就可以适当调整垂直位置。
缺少什么:如何去掉垂直线?
答案1
如果图例图像应该是正方形,那么你自己的图例样式可以是
\pgfplotsset{
/pgfplots/my xbar legend/.style={
/pgfplots/legend image code/.code={%
\draw[##1,/tikz/.cd,bar width=.5em]
plot coordinates { (\pgfplotbarwidth,0.1em)};}
}}
并用作my xbar legend
选项axis
。
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{
/pgfplots/my xbar legend/.style={
/pgfplots/legend image code/.code={%
\draw[##1,/tikz/.cd,bar width=.5em]
plot coordinates { (\pgfplotbarwidth,0.1em)};}
}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xbar stacked,
legend pos=south east,
y post scale=.5,
my xbar legend
]
\addplot[fill,blue!50] coordinates {(1,0) (2,1) (2,2) (3,3)};
\addplot[fill,red!50] coordinates {(1,0) (2,1) (2,2) (3,3)};
\addplot[fill,brown!50] coordinates {(1,0) (2,1) (2,2) (3,3)};
\legend{A,B,C}
\end{axis}
\end{tikzpicture}
\end{document}