**Edit**
Eine einfache Möglichkeit wäre, die Begrenzungslinien in der gleichen Farbe wie die Füllung zeichnen zu lassen:
\addplot[gray,fill]coordinates{(1920,400)(1930,230)(1940,50)(1950,10)};
![alt text][1]
Code:
\documentclass{scrbook}
\usepackage{lmodern}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\tikzset{tikzschrift/.style={font=\small}}
\newcommand{\balkenbreite}{1.2cm} % Balkenbreite für Balkendiagramme
\begin{document}
\begin{tikzpicture}[tikzschrift]
\begin{axis}[ybar=10pt, % gibt Balkendiagramm vor
legend style={draw=none},% keinen Rahmen um Legende
axis x line*=bottom,
axis y line*=left,
ymin=0, ymax=600,
enlarge y limits=0.0,
enlarge x limits=0.15,
symbolic x coords={1920,1930,1940,1950},
x tick label style={text width=2.5cm,align=center},
xtick={data}, ytick={100,200,300,400,500,600},
nodes near coords,
width=\linewidth, height=0.3\linewidth,
bar width=\balkenbreite,
]
\addplot[gray,fill]coordinates{(1920,400)(1930,230)(1940,50)(1950,10)};
\addplot[black!20,fill]coordinates{(1920,560)(1930,230)(1940,50)(1950,10)};
\legend{Grau, Hellgrau};
\end{axis}
\end{tikzpicture}
\end{document}
----------
**Ursprünglicher Vorschlag**
Die Option `ybar` der `axis` Umgebung aktiviert den Stil `ybar legend`, der laut Doku von pgfplots so definiert ist:
\pgfplotsset{
/pgfplots/ybar legend/.style={
/pgfplots/legend image code/.code={%
\draw[##1,/tikz/.cd,bar width=3pt,yshift=-0.2em,bar shift=0pt]
plot coordinates {(0cm,0.8em) (2*\pgfplotbarwidth,0.6em)};}
}
Mit `##1` wird der Stil des jeweiligen Plots übernommen. Warum das für die Option `draw=none` nicht gilt, ist mir allerdings nicht klar. Eine mögliche Ursache ist eventuell, dass laut Doku gleichzeitig auch der Stil `every axis legend` wirksam ist.
Als mögliche Lösung kann man bei den `\addplot` zusätzlich oder ersatzweise die Option `draw opacity=0` angeben. Dann sind auch die Ränder der Legendenbildern nicht sichtbar:
\addplot[fill=gray,draw=none,draw opacity=0]coordinates{(1920,400)(1930,230)(1940,50)(1950,10)};
Alternativ kann man `legend style={draw opacity=0}` als Option der `axis` Umgebung angeben. Dann verschwinden sowohl die Ränder der Legendenbilder als auch der Rahmen der Legende:
\begin{axis}[..., legend style={draw opacity=0},...]...\end{axis}
Man kann sich aber auch einen eigenen Stil für die Legendenbilder definieren. Im folgenden Code ist lediglich `\draw` durch `\path` ersetzt:
\pgfplotsset{%
/pgfplots/my ybar legend/.style={
legend image code/.code={%
\path[##1,/tikz/.cd,bar width=3pt,yshift=-0.2em,bar shift=0pt]
plot coordinates {(0cm,0.8em) (2*\pgfplotbarwidth,0.6em)};%
}
}
}
Diesen eigenen Stil kann man dann nach `ybar=...` als Option für die `axis` Umgebung verwenden:
\documentclass{scrbook}
\usepackage{lmodern}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
% eigener Stil für die Legendenbilder
\pgfplotsset{%
/pgfplots/my ybar legend/.style={
legend image code/.code={%
\path[##1,/tikz/.cd,bar width=3pt,yshift=-0.2em,bar shift=0pt]
plot coordinates {(0cm,0.8em) (2*\pgfplotbarwidth,0.6em)};%
}
}
}
\tikzset{tikzschrift/.style={font=\small}}
\newcommand{\balkenbreite}{1.2cm} % Balkenbreite für Balkendiagramme
\begin{document}
\begin{tikzpicture}[tikzschrift]
\begin{axis}[ybar=10pt, % gibt Balkendiagramm vor
my ybar legend,% eigenen Stil für die Legendenbilder verwenden
legend style={draw=none},% keinen Rahmen um Legende
axis x line*=bottom,
axis y line*=left,
ymin=0, ymax=600,
enlarge y limits=0.0,
enlarge x limits=0.15,
symbolic x coords={1920,1930,1940,1950},
x tick label style={text width=2.5cm,align=center},
xtick={data}, ytick={100,200,300,400,500,600},
nodes near coords,
width=\linewidth, height=0.3\linewidth,
bar width=\balkenbreite,
]
\addplot[fill=gray,draw=none]coordinates{(1920,400)(1930,230)(1940,50)(1950,10)};
\addplot[fill=black!20,draw=none]coordinates{(1920,560)(1930,230)(1940,50)(1950,10)};
\legend{Grau, Hellgrau};
\end{axis}
\end{tikzpicture}
\end{document}
![alt text][1]
text][2]
[1]: http://texwelt.de/wissen/upfiles/legende.png
[2]: http://texwelt.de/wissen/upfiles/EigeneLegende_1.PNG