I have a legend with the option area legend to draw a little rectangle in the legend instead of a line segment. There is a border around the rectangle I would like to either remove or make the same color as the actual rectangle.
How is this done?
Asked
Active
Viewed 5,587 times
5
Man of One Way
- 153
2 Answers
8
To hide the border both in the plot and in the legend, you should use draw opacity=0 in the \addplot options instead of draw=none:

\documentclass[border=5mm] {standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot [fill=yellow,draw opacity=0, area legend] coordinates {(0,0) (2,1) (4,1)} \closedcycle;
\addlegendentry{Plot}
\end{axis}
\end{tikzpicture}
\end{document}
Jake
- 232,450
4
Another possibility is to change the area legend style so that draw=none actually takes effect. (Example taken from the pgfplots manual, page 173.)
Code
\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{
/pgfplots/area legend/.style={%
/pgfplots/legend image code/.code={%
\fill[##1] (0cm,-0.1cm) rectangle (0.6cm,0.1cm);
}%
},
}
\usetikzlibrary{patterns}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
area legend,
axis x line=bottom,
axis y line=left,
domain=0:1,
legend style={at={(0.03,0.97)},anchor=north west},
axis on top,xmin=0]
\addplot[
pattern=crosshatch dots,
pattern color=blue,
draw=none,
samples=500] {sqrt(x)} \closedcycle;
\addplot[
pattern=crosshatch,
pattern color=blue!30!white,
draw=blue!30!white] {x^2} \closedcycle;
\addplot[red,line legend] coordinates {(0,0) (1,1)};
\legend{$\sqrt x$,$x^2$,$x$}
\end{axis}
\end{tikzpicture}
\end{document}
Output

Qrrbrbirlbel
- 119,821
area legend– Man of One Way Feb 25 '13 at 13:55\addplot +[fill=grey0, draw=none]– Man of One Way Feb 25 '13 at 13:58