Seite 1 von 1

Fehlerbalken in Balkendiagramm

Verfasst: Do 23. Aug 2018, 08:53
von soete
Moin,
habe hier ein Balkendiagramm, dass auch schon mithilfe aus dem Forum optimiert wurde, aber symmetrische Fehlerbalken kriege ich nicht eingepflegt.
Die Fehler- Daten sollen aus der letzten Zeile der \testdata bezogen werden und horizontal symmetrisch am rechten Ende der Werte-Balken in rot platziert werden.
Habe meine Ansätze auskommentiert, sonst läuft das Minimalbeispiel nicht.
Ich hoffe, dass mir jemand helfen kann, denke dass es mit "echtem Verständnis des Codes" nicht so schwer sein kann, das mir aber fehlt.

Gruß Samuel
 \documentclass[draft=false
              ,paper=a4
              ,twoside=false
              ,fontsize=11pt
              ,headsepline
              ,BCOR10mm
              ,DIV14
              ]{scrbook}
              
\usepackage[left=2.5cm, right=2cm, bottom=3cm, top=2.5cm]{geometry}
\usepackage[utf8]{inputenc}%window,umlaute
\usepackage[ngerman]{babel}%satzaufbau nach deutschem standard von babel
\usepackage[T1]{fontenc}%lateinische schriftzeichen
\usepackage{amsfonts}
\usepackage{graphicx}
	\graphicspath{{./Pictures/}}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{/pgf/number format/use comma} 
\usepackage{pgfplotstable}
\usepackage{textcomp}



\begin{document}

\pgfplotsset{compat=1.9}

\pgfplotstableread[col sep=comma]{
surname,prename,values,errors
,Variante 3 Dreifachhärten,3.61,0.37
,Variante 2 Doppelhärten/HT-Aust./Ofenabkühlung,3.19,0.23
,Variante 1 Doppelhärten,3.37,0.51
Pyrowear 675,vor WB,2.66,0.29

,Variante 3 Direkthärten,2.8157,0.8
,Variante 2 Einfachhärten,2.7455,0.8
,Variante 1 Doppelhärten,3.6720,0.8
M50NiL,vor WB,2.4425,0.8

,Variante 2 LPC+e,1.42,0.8
,Variante 3 GC+e,1.18,0.8
,Variante 5 LPC+8h,4.05,0.8
,Variante 4 LPC,3.27,0.8
,Variante 1 GC,3.92,0.8
Pyrowear 53,vor WB,2.66,0.8

,Variante 2 LPC-Doppelhärten,4.02,0.8
,Variante 1 Gascarbonitrieren,3.95,0.8
14NiCrMo13-4,vor WB,3.60,0.8

,Variante 2 LPC-Direkthärten mit hohem $RA$ Gehalt,3.50,0.8
,Variante 1 LPC-Direkthärten,2.87,0.8
18CrNiMo7-6,vor WB,3.54,0.8
}\testdata

\begin{figure}[h]
\centering
\begin{tikzpicture}
	\begin{axis}[
        width=\textwidth -2cm, 
		height=18cm,
        xmin=0,
        xbar,
        xlabel={Mittlere Rautiefe Rz mit Standardabweichung [\textmu m]}, 
        ytick = data,
        yticklabels from table={\testdata}{surname},
        major y tick style=transparent,
        point meta=explicit symbolic
        ]
\addplot +[
                    nodes near coords={\pgfmathprintnumber[precision=2]{\pgfkeysvalueof{/data point/x}}},
                    %error bars/.cd,
                    %error mark=triangle*, 
                    %error bar style={color=black}, 
                    every node near coord/.append style={
                        anchor=west, 
                        append after command={
                            node [anchor=west] at (axis direction cs:-\pgfkeysvalueof{/data point/x}+\pgfkeysvalueof{/pgfplots/xmin},0) {\pgfkeysvalueof{/data point/meta}}}
                    }
                ] table [y expr=\coordindex, 
                         meta=prename, 
                         x=values,
                         x error=errors]
                         {\testdata};
\draw[red!100] (-0.0cm,2.5cm) -- (19cm,2.5cm) node[draw=none,fill=none,font=\scriptsize,below] {};
\draw[red!100] (-0.0cm,5.4cm) -- (19cm,5.4cm) node[draw=none,fill=none,font=\scriptsize,below] {};
\draw[red!100] (-0.0cm,9.7cm) -- (19cm,9.7cm) node[draw=none,fill=none,font=\scriptsize,below] {};
\draw[red!100] (-0.0cm,11.9cm) -- (19cm,11.9cm) node[draw=none,fill=none,font=\scriptsize,below] {};
        \end{axis}
\end{tikzpicture}
\caption{xyz}
\label{Rzdiagramm}
\end{figure}

\end{document}

Verfasst: Do 23. Aug 2018, 11:38
von Gast
Dein Beispiel ist unvollständig.

Verfasst: Do 23. Aug 2018, 11:59
von soete
Wenn ich den oben dargestellten Code eingebe, erhalte ich ein nur eine Warnung, das Diagramm wird dargestellt.

Was passt denn nicht?

edit: habe in der Figure [H] durch [h] ersetzt, jetzt läuft es

Verfasst: Fr 24. Aug 2018, 09:55
von soete
Gibt es keine Möglichkeit die Fehlerbalken aus der \testdata symmetrisch anzuzeigen?

Verfasst: Mo 27. Aug 2018, 09:15
von esdd
Die Fehlerbalken überlagern dann aber die Werte an den Balken und die Beschriftung der Balken ist länger als die Balken selbst. Damit sind weitere Anpassungen nötig:
\documentclass[%draft=false% default
              %,paper=a4% default
              ,twoside=false
              %,fontsize=11pt% default
              ,headsepline
              %,BCOR10mm% kein Einfluss bei Verwendung von geometry
              %,DIV14% kein Einfluss bei Verwendung von geometry
              ]{scrbook}
              
\usepackage[left=2.5cm, right=2cm, bottom=3cm, top=2.5cm]{geometry}
\usepackage[utf8]{inputenc}%window,umlaute
\usepackage[ngerman]{babel}%satzaufbau nach deutschem standard von babel
\usepackage[T1]{fontenc}%lateinische schriftzeichen
\usepackage{amsfonts}

\usepackage{pgfplotstable}% lädt pgfplots, tikz, graphicx, xcolor, ...
\pgfplotsset{compat=1.9}% als erstes setzen!! aktuell wäre 1.16
\pgfplotsset{/pgf/number format/use comma}

\graphicspath{{./Pictures/}}

\usepackage{textcomp}

\begin{document}

\pgfplotstableread[col sep=comma]{
surname,prename,values,errors
,Variante 3 Dreifachhärten,3.61,0.37
,Variante 2 Doppelhärten/HT-Aust./Ofenabkühlung,3.19,0.23
,Variante 1 Doppelhärten,3.37,0.51
Pyrowear 675,vor WB,2.66,0.29

,Variante 3 Direkthärten,2.8157,0.8
,Variante 2 Einfachhärten,2.7455,0.8
,Variante 1 Doppelhärten,3.6720,0.8
M50NiL,vor WB,2.4425,0.8

,Variante 2 LPC+e,1.42,0.8
,Variante 3 GC+e,1.18,0.8
,Variante 5 LPC+8h,4.05,0.8
,Variante 4 LPC,3.27,0.8
,Variante 1 GC,3.92,0.8
Pyrowear 53,vor WB,2.66,0.8

,Variante 2 LPC-Doppelhärten,4.02,0.8
,Variante 1 Gascarbonitrieren,3.95,0.8
14NiCrMo13-4,vor WB,3.60,0.8

,Variante 2 LPC-Direkthärten mit hohem $RA$ Gehalt,3.50,0.8
,Variante 1 LPC-Direkthärten,2.87,0.8
18CrNiMo7-6,vor WB,3.54,0.8
}\testdata

\begin{figure}[hb]
\centering
\begin{tikzpicture}
   \begin{axis}[
        width=\textwidth -1.5cm,% <- geändert
        height=22cm,
        xmin=0,
        xbar,
        bar width=15pt,
        xlabel={Mittlere Rautiefe Rz mit Standardabweichung [\textmu m]}, 
        ytick = data,
        yticklabels from table={\testdata}{surname},
        major y tick style=transparent,
        point meta=explicit symbolic,
        enlarge x limits={value=.02,upper},% <- eingefügt
        enlarge y limits=.04% <- eingefügt
        ]
\addplot +[
                    nodes near coords={\pgfmathprintnumber[precision=2]{\pgfkeysvalueof{/data point/x}}},
                    every node near coord/.append style={
                        anchor=west,
                        yshift=.5\ht\strutbox,% <- eingefügt
                        append after command={
                            node [anchor=west,
                              font=\small% <- eingfügt
                              ] at (axis direction cs:-\pgfkeysvalueof{/data point/x}+\pgfkeysvalueof{/pgfplots/xmin},0) {\pgfkeysvalueof{/data point/meta}}}
                    },
                         error bars/.cd,% <- eingefügt
                         x dir=both, x explicit,% <- eingefügt
                         error bar style=red% <- eingefügt
                ] table [y expr=\coordindex, 
                         meta=prename, 
                         x=values,
                         x error=errors]
                         {\testdata};
\draw[red!100] 
  (axis cs:0,3.5) -- (axis cs:6,3.5)
  (axis cs:0,7.5) -- (axis cs:6,7.5)
  (axis cs:0,13.5) -- (axis cs:6,13.5)
  (axis cs:0,16.5) -- (axis cs:6,16.5)
;% <- geändert
\end{axis}
\end{tikzpicture}
\caption{xyz}
\label{Rzdiagramm}
\end{figure}

\end{document}
Bild

Verfasst: Mo 27. Aug 2018, 09:42
von soete
Ich bin begeistert, mit der Überlagerung Fehlerbalken/Text kann ich leben.
Vielen Dank!
Jetzt muss ich nur noch die Änderungen verstehen :9

Verfasst: Mo 27. Aug 2018, 10:25
von Bartman
Du musst übrigens für aufrechte Einheiten nicht textcomp laden, wenn Du mit siunitx arbeitest. Bei Deinem Fachgebiet dürfte Letzteres häufig zum Einsatz kommen, sofern es schon am Anfang der Arbeit bekannt ist.