Fehlerbalken in Balkendiagramm

Tabellen und Grafiken erstellen und anordnen


soete
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 8. Aug 2018, 10:31

Fehlerbalken in Balkendiagramm

Beitrag 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}
Zuletzt geändert von soete am Do 23. Aug 2018, 12:09, insgesamt 1-mal geändert.

Gast

Beitrag von Gast »

Dein Beispiel ist unvollständig.

soete
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 8. Aug 2018, 10:31

Beitrag 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

soete
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 8. Aug 2018, 10:31

Beitrag von soete »

Gibt es keine Möglichkeit die Fehlerbalken aus der \testdata symmetrisch anzuzeigen?

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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
Dateianhänge
gl_fehlerbalken.png
gl_fehlerbalken.png (34.41 KiB) 2182 mal betrachtet

soete
Forum-Newbie
Forum-Newbie
Beiträge: 6
Registriert: Mi 8. Aug 2018, 10:31

Beitrag von soete »

Ich bin begeistert, mit der Überlagerung Fehlerbalken/Text kann ich leben.
Vielen Dank!
Jetzt muss ich nur noch die Änderungen verstehen :9

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

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

Antworten