Seite 1 von 2

Wie Zahl über Säule im Säulendiagramm?

Verfasst: Mi 22. Sep 2021, 17:27
von Zoid

Moin moin,

ich habe folgenden vereinfachten Code, welcher mir ein überlagertes Säulendiagramm ausgibt. Die Werte der Säulen werden dabei zentral in die jeweiligen Säulen geschrieben.

s1.PNG
s1.PNG (15.17 KiB) 5201 mal betrachtet

Allerdings hätte ich sie gerne über den Säulen. Eigentlich sollte es doch einen einfachen Weg geben, dies umzusetzen, ich habe es schon bei zahlreichen anderen Diagrammen gesehen. Leider werde ich aus dem Code jedoch nicht schlau oder bei mir klappts halt irgendwie nicht. Wenn jemand einen Tipp hätte, was ich machen könnte, wäre das super.

\documentclass{scrreprt}

\usepackage{biblatex}	% Literaturverzeichnis mit Datei
\usepackage{tikz}
\usepackage{pgfplots}
	\pgfplotsset{compat=1.18}

\begin{document}

\begin{figure}[htb]
\centering
\begin{tikzpicture}
\pgfplotsset{/pgf/number format/.cd, fixed, assume math mode}
\pgfkeys{/pgf/number format/use comma}
\pgfmathsetlengthmacro\balkenbreite{20mm}
\definecolor{ha}{HTML}{75C36C} 
\definecolor{ton}{HTML}{F78181} 
\pgfplotstableread[col sep=comma]{
x,	yton,	yha
1	,	555	,	0
1	,	0	,	55
2	,	500	,	0
2	,	0	,	70

}\data
\begin{axis}[
	width=5cm,
	height=5cm,
	axis x line=bottom,
	axis y line=left,
	ybar stacked,
	nodes near coords,
	xtick={data},
	x tick label style={rotate=90},
	xticklabels={X,Z},
	xmax=3,
	ymin=0,
	ymax=600,
	ytick={0,100,200,300,400,500},
	enlarge x limits=0.25,
	legend entries={A, B},
	ylabel style={align=center}, ylabel={Test},
	ymajorgrids
]
\addplot [fill=ha,bar shift=-0.025\balkenbreite,bar width=0.5\balkenbreite,font=\footnotesize] table [y=yha] {\data};
\addplot [fill=ton,bar shift=0.025\balkenbreite,bar width=0.5*\balkenbreite,font=\footnotesize] table [y=yton] {\data};
\end{axis}
\end{tikzpicture}
\caption{Test2}
\end{figure}

\end{document}

Vielen Dank und viele Grüße


Re: Wie Zahl über Säule im Säulendiagramm?

Verfasst: Mi 22. Sep 2021, 18:09
von Adspectus

Ergänze

nodes near coords align={〈alignment method〉}

aber ich denke, du wirst etwas rumprobieren müssen, um den richtigen Wert zu finden.

Siehe pgfplots Handbuch, S. 116


Re: Wie Zahl über Säule im Säulendiagramm?

Verfasst: Mi 22. Sep 2021, 18:20
von Gast.

Würde ich bei ybar stacked nicht empfehlen, weil die Zahl der grünen Balken dann in den roten Balken steht, was etwas verwirrt, ähnlich hier:

\documentclass{scrreprt}

\usepackage{biblatex}	% Literaturverzeichnis mit Datei
\usepackage{tikz}
\usepackage{pgfplots}
	\pgfplotsset{compat=1.18}

\begin{document}

\begin{figure}[htb]
\centering
\begin{tikzpicture}
\pgfplotsset{/pgf/number format/.cd, fixed, assume math mode}
\pgfkeys{/pgf/number format/use comma}
\pgfmathsetlengthmacro\balkenbreite{20mm}
\definecolor{ha}{HTML}{75C36C} 
\definecolor{ton}{HTML}{F78181} 
\pgfplotstableread[col sep=comma]{
x,	yton,	yha
1	,	555	,	0
1	,	0	,	55
2	,	500	,	0
2	,	0	,	70

}\data
\begin{axis}[
	width=5cm,
	height=5cm,
	axis x line*=bottom,
	axis y line=left,
	ybar,
	nodes near coords,
	xtick={data},
	x tick label style={rotate=90},
	xticklabels={X,Z},
	xmax=3,
	ymin=0,
	ymax=600,
	ytick={0,100,200,300,400,500},
	enlarge x limits=0.25,
	legend entries={A, B},
	ylabel style={align=center}, ylabel={Test},
	ymajorgrids
]
\addplot [fill=ton,bar shift=0.025*\balkenbreite,bar width=0.5*\balkenbreite,font=\footnotesize] table [y=yton] {\data};
\addplot [fill=ha,bar shift=-0.025*\balkenbreite,bar width=0.5*\balkenbreite,font=\footnotesize] table [y=yha] {\data};
\end{axis}
\end{tikzpicture}
\caption{Test2}
\end{figure}

\end{document}

Re: Wie Zahl über Säule im Säulendiagramm?

Verfasst: Mi 22. Sep 2021, 18:29
von Zoid
Adspectus hat geschrieben:
Mi 22. Sep 2021, 18:09

Ergänze

nodes near coords align={〈alignment method〉}

aber ich denke, du wirst etwas rumprobieren müssen, um den richtigen Wert zu finden.

Siehe pgfplots Handbuch, S. 116

Danke für die Antwort, das hat allerdings nicht den gewünschten Effekt. Mit keinem der Werte auto, vertical oder horizontal wird der Wert über die Säule gepackt.

Falls jemand die erwähnte Quelle sucht: https://ftp.rrzn.uni-hannover.de/pub/mi ... fplots.pdf


Re: Wie Zahl über Säule im Säulendiagramm?

Verfasst: Mi 22. Sep 2021, 18:33
von Zoid
Gast. hat geschrieben:
Mi 22. Sep 2021, 18:20

Würde ich bei ybar stacked nicht empfehlen, weil die Zahl der grünen Balken dann in den roten Balken steht, was etwas verwirrt, ähnlich hier:

\documentclass{scrreprt}

\usepackage{biblatex}	% Literaturverzeichnis mit Datei
\usepackage{tikz}
\usepackage{pgfplots}
	\pgfplotsset{compat=1.18}

\begin{document}

\begin{figure}[htb]
\centering
\begin{tikzpicture}
\pgfplotsset{/pgf/number format/.cd, fixed, assume math mode}
\pgfkeys{/pgf/number format/use comma}
\pgfmathsetlengthmacro\balkenbreite{20mm}
\definecolor{ha}{HTML}{75C36C} 
\definecolor{ton}{HTML}{F78181} 
\pgfplotstableread[col sep=comma]{
x,	yton,	yha
1	,	555	,	0
1	,	0	,	55
2	,	500	,	0
2	,	0	,	70

}\data
\begin{axis}[
	width=5cm,
	height=5cm,
	axis x line=bottom,
	axis y line=left,
	ybar,
	nodes near coords,
	xtick={data},
	x tick label style={rotate=90},
	xticklabels={X,Z},
	xmax=3,
	ymin=0,
	ymax=600,
	ytick={0,100,200,300,400,500},
	enlarge x limits=0.25,
	legend entries={A, B},
	ylabel style={align=center}, ylabel={Test},
	ymajorgrids
]
\addplot [fill=ton,bar shift=0.025\balkenbreite,bar width=0.5\balkenbreite,font=\footnotesize] table [y=yton] {\data};
\addplot [fill=ha,bar shift=-0.025\balkenbreite,bar width=0.5*\balkenbreite,font=\footnotesize] table [y=yha] {\data};
\end{axis}
\end{tikzpicture}
\caption{Test2}
\end{figure}

\end{document}

Die originalen Zahlenwerte sind für die niedrigen Säulen eher gering, sodass sie gar nicht in die Balken passen. Durch die gewählten Beispielzahlen sieht es hier etwas anders aus. Falls es jedoch zu verwirrend sein sollte, dann würde ich ggf. mit Farben arbeiten, um den Unterschied deutlich zu machen.


Re: Wie Zahl über Säule im Säulendiagramm?

Verfasst: Mi 22. Sep 2021, 18:47
von gast.
Zoid hat geschrieben:
Mi 22. Sep 2021, 18:29

Falls jemand die erwähnte Quelle sucht: https://ftp.rrzn.uni-hannover.de/pub/mi ... fplots.pdf

Es ist wenig sinnvoll, einen speziellen CTAN-Mirror für die Anleitungen anzugeben. Besser den generischen CTAN-Link: http://mirrors.ctan.org/graphics/pgf/co ... fplots.pdf, oder direkt den Paketlink pgfplots oder den Link auf Stefans doc-Server: pgfplots. Allerdings sollte auch jeder LaTeX-Anwender wissen, wie er Paket-Anleitungen auf seinem lokalen Rechner findet. Eine entsprechende Anleitung ist übrigens auch in den wichtigen Hinweisen in den meisten Unterforen hier zu finden.


Re: Wie Zahl über Säule im Säulendiagramm?

Verfasst: Mi 22. Sep 2021, 19:36
von Zoid
gast. hat geschrieben:
Mi 22. Sep 2021, 18:47
Zoid hat geschrieben:
Mi 22. Sep 2021, 18:29

Falls jemand die erwähnte Quelle sucht: https://ftp.rrzn.uni-hannover.de/pub/mi ... fplots.pdf

Es ist wenig sinnvoll, einen speziellen CTAN-Mirror für die Anleitungen anzugeben. Besser den generischen CTAN-Link: http://mirrors.ctan.org/graphics/pgf/co ... fplots.pdf, oder direkt den Paketlink pgfplots oder den Link auf Stefans doc-Server: pgfplots. Allerdings sollte auch jeder LaTeX-Anwender wissen, wie er Paket-Anleitungen auf seinem lokalen Rechner findet. Eine entsprechende Anleitung ist übrigens auch in den wichtigen Hinweisen in den meisten Unterforen hier zu finden.

Wollte nur behilflich sein, falls jemand das Dokument sucht. Aber dann weiß ich drüber Bescheid, wie hier die Gangart diesbezüglich ist.


Re: Wie Zahl über Säule im Säulendiagramm?

Verfasst: Mi 22. Sep 2021, 20:09
von Stefan Kottwitz

Hi Zoid,

wenn jemand Hinweise hat, auch in Sicht auf später per Google Reinkommende, werden sie auch mal gepostet, ist nicht böse gemeint, sorry wenn es nicht gut ankam,

Danke,

Stefan


Re: Wie Zahl über Säule im Säulendiagramm?

Verfasst: Do 23. Sep 2021, 10:46
von Zoid
Stefan Kottwitz hat geschrieben:
Mi 22. Sep 2021, 20:09

Hi Zoid,

wenn jemand Hinweise hat, auch in Sicht auf später per Google Reinkommende, werden sie auch mal gepostet, ist nicht böse gemeint, sorry wenn es nicht gut ankam,

Danke,

Stefan

Guten Morgen Stefan,

danke für die Rückmeldung. Ich hatte es jetzt nicht negativ aufgefasst, sondern als konstruktive Kritik. Ich bekomme hier ja sehr gute Hilfe und da ist es selbstverständlich sich den allgemeinen Vorgängen im Forum anzupassen.

Des Rätsels Lösung war die simple Abänderung von

ybar stacked

zu

ybar

. Falls man dann Probleme mit doppelt angezeigten Flächen bei der Legende haben sollte, bekommt man das mit Hinweisen von hier gelöst: https://tex.stackexchange.com/questions ... nd-entries


Re: Wie Zahl über Säule im Säulendiagramm?

Verfasst: Do 23. Sep 2021, 11:56
von gast.
Zoid hat geschrieben:
Do 23. Sep 2021, 10:46

Des Rätsels Lösung war die simple Abänderung von

ybar stacked

zu

ybar

.

Das hatte der groß geschriebene Gast ja oben bereit gezeigt. Wobei man dann ggf. einzelne Balken vertauschen muss, damit sie nicht überdeckt werden, was der Gast ebenfalls getan hatte.