Wie Zahl über Säule im Säulendiagramm? Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

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

Beitrag 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) 3738 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


Adspectus
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: Mo 20. Sep 2021, 18:02

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

Beitrag 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


Gast.

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

Beitrag 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}

Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

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

Beitrag 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


Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

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

Beitrag 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.


gast.

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

Beitrag 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.


Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

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

Beitrag 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.


Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2485
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

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

Beitrag 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


Zoid
Forum-Century
Forum-Century
Beiträge: 104
Registriert: Do 12. Mär 2020, 13:48

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

Beitrag 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


gast.

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

Beitrag 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.


Antworten