Seite 1 von 1

PGFPLOTS Einzelne Werte in Säulendiagramm ausblenden

Verfasst: So 2. Apr 2017, 17:12
von tekken01
Hallo alle zusammen,

ich erstelle im Rahmen meiner Bachelorarbeit mehrere Säulendiagramme. Mein Problem ist, dass ich Werte, zu denen ich keine Daten habe, nicht einfach weglassen kann. Genauer gesagt möchte ich einen einen Wert aus meiner 1.Datenreihe nicht als Balken im Plot anzeigen lassen. Im Code mit dem Wert 0 ( Hüftgelenk )angegeben.
	\begin{tikzpicture} 
	\begin{axis}[
	ybar,
	bar width=12,
	enlargelimits=0.18,
	legend style={at={(0.5,-0.2)},
		anchor=north,legend columns=-1},
	symbolic x coords={Kniegelenk,H\"uftgelenk,Kn\"ochel},
	xtick=data,
	nodes near coords,
	nodes near coords align={vertical},
	ybar,
	every node near coord/.append style={rotate=90, anchor=west},
	]
	\addplot coordinates {(Kniegelenk,0.964) (H\"uftgelenk,0)
		(Kn\"ochel,0.893) };
	\addplot coordinates {(Kniegelenk,0.85) (H\"uftgelenk,0.69)
		(Kn\"ochel,0.97) };
	\legend{1,2}
	\end{axis}
	\end{tikzpicture}
Wenn ich den Wert einfach weglasse verwindet jedoch meine Achsenbeschriftung :cry:


Bild

Verfasst: So 2. Apr 2017, 20:20
von esdd
Ersetze xtick=data durch

[code]xtick={Kniegelenk,H\"uftgelenk,Kn\"ochel}[/code]

Dann kannst Du die Koordinate einfach weglassen oder durch

[code]
y filter/.expression={y==0 ? nan : y},
unbounded coords=discard[/code]

wegfiltern.

[code]\documentclass[12pt]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
bar width=12pt,% <- pt ergänzt
enlargelimits=0.25,
legend style={at={(0.5,-0.2)},
anchor=north,legend columns=-1},
symbolic x coords={Kniegelenk,Hüftgelenk,Knöchel},
xtick={Kniegelenk,Hüftgelenk,Knöchel},
nodes near coords,
nodes near coords align={vertical},
%ybar,% einmal angeben reicht
every node near coord/.append style={rotate=90, anchor=west},
y filter/.expression={y==0 ? nan : y},
unbounded coords=discard
]
\addplot coordinates {(Kniegelenk,0.964) (Hüftgelenk,0)
(Knöchel,0.893) };
\addplot coordinates {(Kniegelenk,0.85) (Hüftgelenk,0.69)
(Knöchel,0.97) };
\legend{1,2}
\end{axis}
\end{tikzpicture}
\end{document}[/code]

Bild

Verfasst: So 2. Apr 2017, 20:46
von tekken01
Perfekt! Das ist genau was ich gesucht habe! Vielen Dank!!!! :D