Hallo,

ich habe ein Balkendiagramm gezeichnet, dessen Balken keine Begrenzungslinien haben (draw=none). Leider wird in den Symbolen der Legende jedoch eine Begrenzungslinie automatisch gezeichnet. Wie passe ich diese an das Format der Balken in der Grafik an. D.h. im konkreten Fall: Wie kann ich für die Legendensymbole draw=none einstellen? Vielen Dank schon mal.

Hier das MB:

Code, hier editierbar zum Übersetzen:
\documentclass{scrbook}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
% pgfplots
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
% TikZ Beginn Adjustments -----------------------------------------------------------------------------------------------------------------------------
\usepackage{tikz}
\usetikzlibrary{intersections,positioning,arrows,calc,patterns,shapes.multipart,fit,backgrounds,decorations.pathreplacing}
\newenvironment{tikzschriftgroesse}{\begin{small}}{\end{small}}
% Eigene Befehle für TikZ Abbildungen.
\newcommand{\balkenbreite}{1.2cm} % Balkenbreite für Balkendiagramme
% TikZ Ende Adjustments -----------------------------------------------------------------------------------------------------------------------------
\begin{document}
\begin{figure}
\centering
\begin{tikzschriftgroesse}
\begin{tikzpicture}
% Grid
% \draw [step=0.5cm,very thin,gray] (0,0) grid(14.5,20);
\begin{axis}
[
ybar=10pt, % Gibt Balkendiagramm vor.
axis x line*=bottom, % Sternchen führt dazu, dass kein Pfeil an Achse.
axis y line*=left, % Sternchen führt dazu, dass kein Pfeil an Achse.
ymin=0, % Minimum der y-Achse. Beschriftung über ytick.
ymax=600, % Minimum der x-Achse. Beschriftung über xtick.
enlarge y limits=0.0, % Fügt zusätzlichen Abstand oben und unten ein. Angabe in Prozent (bspw. 0.2).
enlarge x limits=0.15, % Fügt zusätzlichen Abstand links und rechts. Angabe in Prozent (bspw. 0.2).
legend style={draw=none}, % keine Box um Legende
symbolic x coords=
{
1920,
1930,
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

gefragt 24 Okt '13, 17:35

josephine's gravatar image

josephine
944263035
Akzeptiert-Rate: 0%

bearbeitet 24 Okt '13, 20:04

cgnieder's gravatar image

cgnieder
22.1k253463

@Josephine: Bitte sieh dir auch mal saputellos Antwort auf die Frage Kann ich Schriftgrößenumschaltungen auch als Umgebungen verwenden? an.

(24 Okt '13, 23:21) esdd

Edit

Eine einfache Möglichkeit wäre, die Begrenzungslinien in der gleichen Farbe wie die Füllung zeichnen zu lassen:

Open in writeLaTeX
\addplot[gray,fill]coordinates{(1920,400)(1930,230)(1940,50)(1950,10)};
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Code:

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\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}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ursprünglicher Vorschlag

Die Option ybar der axis Umgebung aktiviert den Stil ybar legend, der laut Doku von pgfplots so definiert ist:

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\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)};}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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:

Open in writeLaTeX
\addplot[fill=gray,draw=none,draw opacity=0]coordinates{(1920,400)(1930,230)(1940,50)(1950,10)};
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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:

Open in writeLaTeX
\begin{axis}[..., legend style={draw opacity=0},...]...\end{axis}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Man kann sich aber auch einen eigenen Stil für die Legendenbilder definieren. Im folgenden Code ist lediglich \draw durch \path ersetzt:

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\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)};%
}
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Diesen eigenen Stil kann man dann nach ybar=... als Option für die axis Umgebung verwenden:

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\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}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Permanenter link

beantwortet 24 Okt '13, 23:06

esdd's gravatar image

esdd
17.8k304257
Akzeptiert-Rate: 62%

bearbeitet 14 Aug '14, 16:58

Super, danke für die Antwort. Es klappt sehr gut.

(28 Okt '13, 10:03) josephine
Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×731
×298

gestellte Frage: 24 Okt '13, 17:35

Frage wurde gesehen: 19,437 Mal

zuletzt geändert: 14 Aug '14, 16:58

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×