Hallo zusammen, ich möchte gerne ein Säulendiagramm für eine Auswertung erstellen. Das klappt soweit auch ganz gut, zumindest solange die Säulen alle die gleiche Farbe haben. Allerdings würde ich gerne die Säulen der Proben, die geeignet sind, in Grün und die anderen Säulen in Rot darstellen. Mein bisheriger Ansatz mit folgendem Code zerschießt leider die Formatierung komplett. :( \documentclass[]{scrreprt} \usepackage{pgfplots} % Für Säulendiagramm \pgfplotsset{compat=1.18} % Versionsangabe \begin{document} \begin{tikzpicture} \pgfplotsset{ every linear axis/.append style={ ybar, %bar width=20pt, point meta=rawy, ymajorgrids=true, symbolic x coords={Probe 1,Probe 2,Probe 3,Probe 4,Probe 5}, x tick label style={rotate=60,anchor=north east}, enlargelimits=auto, ymin = 0, ymax = 8, legend pos= north east, legend cell align=left, }} \begin{axis}[ bar width = 20pt, ylabel=$\Delta \%T$, ytick={0,1,...,8}, xtick=data, ] \addplot[fill=green,error bars/.cd,y dir=both,y explicit] coordinates { (Probe 1,5.5) -= (0,1) += (0,1) (Probe 2,5.0) -= (0,1) += (0,0.5) % (Probe 3,1.9) -= (0,0) += (0,2) % (Probe 4,3.3) -= (0,1) += (0,0) % (Probe 5,4.1) -= (0,0) += (0,0) }; \addlegendentry{geeignet} \addplot[fill=red,error bars/.cd,y dir=both,y explicit] coordinates { (Probe 3,1.9) -= (0,0) += (0,2) (Probe 4,3.3) -= (0,1) += (0,0) (Probe 5,4.1) -= (0,0) += (0,0) }; \addlegendentry{ungeeignet} \end{axis} \end{tikzpicture} \end{document} Mit nur einem \addplot sieht alles gut aus. Hier stimmt jetzt allerdings die Position der grünen Säulen nicht mehr und bei den roten Säulen fehlt die Beschriftung. Auch die Abstände zwischen den Säulen sind unterschiedlich und zum Rand nicht existent. Habe es auch schon mit zwei axis Umgebungen probiert, aber leider auch ohne Erfolg (MWE kann ich gerne nachliefern, falls gewünscht). In der Dokumentation zu pgfplots habe ich bisher auch nichts gefunden, auch wenn ich mir fast sicher bin, dass es irgendwo enthalten ist. Daher würde ich mich sehr über Eure Unterstützung freuen! Das Diagramm möchte ich dann noch erweitern und ggf. die Abstände anpassen. Mit der Option ybar=xpt kann ja aber nur der Abstand zwischen Säulen desselben x-Wertes angepasst werden. Gibt es so eine Möglichkeit auch für die Abstände der Säulen zwischen den x-Werten? Hoffe ich habe diese Option nicht in der Dokumentation überlesen. Vielen Dank schon einmal und ein schönes Wochenende! gefragt 03 Feb '23, 11:38 LatexNoob23 |
Wenn Du keine Verschiebung zwischen den zwei Säulenplots haben möchtest, kannst du entweder ybar=-\pgfplotwidth
verwenden oder nach ybar, ybar shift=0pt Wenn du alle Beschriftungen haben möchtest, dann verwende nicht xtick distance=1 Den Abstand zwischen den Säulen kannst du auf verschiedene Arten beeinflussen: Du kannst die Breite der Säulen (z.B. \documentclass[]{scrreprt} \usepackage{pgfplots} \pgfplotsset{compat=1.18} \begin{document} \begin{tikzpicture} \begin{axis}[ ybar,bar shift=0pt, %oder ybar=-\pgfplotbarwidth, bar width = 20pt, bar shift=0pt, point meta=rawy, ymajorgrids=true, ylabel=$\Delta \%T$, ytick={0,1,...,8}, ymin = 0, ymax = 8, symbolic x coords={Probe 1,Probe 2,Probe 3,Probe 4,Probe 5}, x tick label style={rotate=60,anchor=north east}, xtick distance=1,% statt xtick=data enlargelimits=auto, legend pos= north east, legend cell align=left, %x=2cm ] \addplot[fill=green,error bars/.cd,y dir=both,y explicit] coordinates { (Probe 1,5.5) -= (0,1) += (0,1) (Probe 2,5.0) -= (0,1) += (0,0.5) }; \addlegendentry{geeignet} \addplot[fill=red,error bars/.cd,y dir=both,y explicit] coordinates { (Probe 3,1.9) -= (0,0) += (0,2) (Probe 4,3.3) -= (0,1) += (0,0) (Probe 5,4.1) -= (0,0) += (0,0) }; \end{axis} \end{tikzpicture} \end{document} beantwortet 04 Feb '23, 22:06 esdd Vielen vielen Dank, genau so habe ich mir das vorgestellt. :D Danke auch für die ganzen Hinweise, manchmal steckt der Teufel echt im Detail. Dann wünsche ich Dir noch einen schönen Sonntag.
(05 Feb '23, 11:33)
LatexNoob23
|