PGFPLOTS Einzelne Werte in Säulendiagramm ausblenden

Tabellen und Grafiken erstellen und anordnen


tekken01

PGFPLOTS Einzelne Werte in Säulendiagramm ausblenden

Beitrag 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

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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
Dateianhänge
gl_saeuleausblenden.png
gl_saeuleausblenden.png (9.33 KiB) 1139 mal betrachtet

tekken01

Beitrag von tekken01 »

Perfekt! Das ist genau was ich gesucht habe! Vielen Dank!!!! :D

Antworten