Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

07 Apr '20, 19:22

cis's gravatar image

cis
9.6k104461491

Zwei Gruppen bei einem gestapelten Balkendiagramm und zentrierte Balkenbeschriftungen

Ich bin absolute Latex-Anfängerin und verzweifele seit einigen Tagen an einem Grafen für meine Bachelorarbeit. Er soll am Ende etwa so aussehen: [![alt text][1]][1] [1]: https://texwelt.de/upfiles/Vorbild_Latex.PNG Davon bin ich noch recht weit entfernt. Deshalb habe ich folgende Fragen: 1. Wie kann ich die Balkenbeschriftungen zentrieren? 2. Wie kann ich die X-Achse in zwei Teile unterteilen (jeweils TB, FB, IG und SFB für 3-Jährige und für 4-Jährige)? Ich habe etwas von einem groupplot-Befehl gelesen, wusste aber nicht, wie ich damit solch ein gestapeltes Balkendiagramm hinbekomme. 3. Sehr gerne hätte ich durch den gesamten Graphen noch eine Linie bei 50 %, die das Zufallsniveau markiert. Ist das möglich? Folgendes habe ich schon: \documentclass[a4paper,12pt]{article} \usepackage{graphicx} \usepackage{tikz} \usepackage{tabularx} \usepackage{pgfplots} \usepackage{pgfplotstable} \begin{document} \pgfplotstableread[col sep=comma,header=false]{ TB,11,39 FB,23,26 IG,11,38 SFB,12,38 vTB,6,15 vFB,12,9 vIG,11,8 vSFB,17,1 }\data \pgfplotstablecreatecol[ create col/expr={ \thisrow{1} + \thisrow{2} } ]{sum}{\data} \pgfplotsset{ percentage plot/.style={ point meta=explicit, every node near coord/.append style={ xshift=17pt, yshift=-5.15pt, anchor=east, % font=\footnotesize, color=black, align=center, text width=1cm, }, nodes near coords={ \pgfmathtruncatemacro\iszero{\originalvalue==0} \ifnum\iszero=0 % \pgfmathprintnumber{\originalvalue}$\,\%$\\ \pgfmathprintnumber[fixed zerofill,precision=0]{\pgfplotspointmeta} \fi}, nodes near coords align={center}, yticklabel=\pgfmathprintnumber{\tick}\,$\%$, ymin=-10, ymax=110, % enlarge y limits={upper,value=0.1}, visualization depends on={y \as \originalvalue} }, percentage series/.style={ table/y expr=(\thisrow{#1}/\thisrow{sum}*100),table/meta=#1 } } \begin{tikzpicture} \begin{axis}[ ybar stacked, % axis on top, height=8cm, % width=10cm, percentage plot, % axis y discontinuity=crunch, bar width=0.65cm, symbolic x coords={TB,FB,IG,SFB,vTB,vFB,vIG,vSFB}, xtick=data, x tick label style={rotate=45, anchor=east, xshift=-1.5mm, yshift=-2mm}, % ylabel={\#a}, % enlargelimits=0.15, legend style={ at={(0.5,-0.30)}, anchor=south, legend columns=-2 } ] \addplot table [percentage series=1] {\data}; \addplot table [percentage series=2] {\data}; \legend{\strut leere Box, \strut volle Box} \end{axis} \end{tikzpicture} \end{document}
Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

07 Apr '20, 13:05

JoanaLo's gravatar image

JoanaLo
3926

Zwei Gruppen bei einem gestapelten Balkendiagramm und zentrierte Balkenbeschriftungen

Ich bin absolute Latex-Anfängerin und verzweifele seit einigen Tagen an einem Grafen für meine Bachelorarbeit. Er soll am Ende etwa so aussehen: [![alt text][1]][1] [1]: https://texwelt.de/upfiles/Vorbild_Latex.PNG Davon bin ich noch recht weit entfernt. Deshalb habe ich folgende Fragen: 1. Wie kann ich die Balkenbeschriftungen zentrieren? 2. Wie kann ich die X-Achse in zwei Teile unterteilen (jeweils TB, FB, IG und SFB für 3-Jährige und für 4-Jährige)? Ich habe etwas von einem groupplot-Befehl gelesen, wusste aber nicht, wie ich damit solch ein gestapeltes Balkendiagramm hinbekomme. 3. Sehr gerne hätte ich durch den gesamten Graphen noch eine Linie bei 50 %, die das Zufallsniveau markiert. Ist das möglich? Folgendes habe ich schon: \documentclass[a4paper,12pt]{article} \usepackage{graphicx} \usepackage{tikz} \usepackage{tabularx} \usepackage{pgfplots} \usepackage{pgfplotstable} \begin{document} \pgfplotstableread[col sep=comma,header=false]{ TB,11,39 FB,23,26 IG,11,38 SFB,12,38 vTB,6,15 vFB,12,9 vIG,11,8 vSFB,17,1 }\data \pgfplotstablecreatecol[ create col/expr={ \thisrow{1} + \thisrow{2} } ]{sum}{\data} \pgfplotsset{ percentage plot/.style={ point meta=explicit, every node near coord/.append style={ xshift=17pt, yshift=-5.15pt, anchor=east, % font=\footnotesize, color=black, align=center, text width=1cm, }, nodes near coords={ \pgfmathtruncatemacro\iszero{\originalvalue==0} \ifnum\iszero=0 % \pgfmathprintnumber{\originalvalue}$\,\%$\\ \pgfmathprintnumber[fixed zerofill,precision=0]{\pgfplotspointmeta} \fi}, nodes near coords align={center}, yticklabel=\pgfmathprintnumber{\tick}\,$\%$, ymin=-10, ymax=110, % enlarge y limits={upper,value=0.1}, visualization depends on={y \as \originalvalue} }, percentage series/.style={ table/y expr=(\thisrow{#1}/\thisrow{sum}*100),table/meta=#1 } } \begin{tikzpicture} \begin{axis}[ ybar stacked, % axis on top, height=8cm, % width=10cm, percentage plot, % axis y discontinuity=crunch, bar width=0.65cm, symbolic x coords={TB,FB,IG,SFB,vTB,vFB,vIG,vSFB}, xtick=data, x tick label style={rotate=45, anchor=east, xshift=-1.5mm, yshift=-2mm}, % ylabel={\#a}, % enlargelimits=0.15, legend style={ at={(0.5,-0.30)}, anchor=south, legend columns=-2 } ] \addplot table [percentage series=1] {\data}; \addplot table [percentage series=2] {\data}; \legend{\strut leere Box, \strut volle Box} \end{axis} \end{tikzpicture} \end{document}