tikz/pgf plots diagramm und boxplot precision

Tabellen und Grafiken erstellen und anordnen


Phil100%Vol
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mi 21. Jun 2017, 06:50

tikz/pgf plots diagramm und boxplot precision

Beitrag von Phil100%Vol »

Hi,

ich brauche mal wieder eure Hilfe. Ich möchte in einem tikz/pgf plots Diagramm einen boxplot darstellen. Leider erstellt er mir immer wieder mehrere Nachkommastellen in der x-Achse.

Folgende Befehle habe ich schon vergebens versucht:
xticklabel style={/pgf/number format/fixed,/pgf/number format/precision=3}
xticklabel style={/pgf/number format/precision=3}
auch das im tikzset zu definieren hat nichts geändert:
\tikzset{every x tick label/.append style={/pgf/number format/.cd,fixed,fixed zerofill,precision=2}}
Anbei das Beispiel:
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{statistics}		
\pgfplotsset{compat=newest}

%\tikzset{every x tick label/.append style={/pgf/number format/.cd,fixed,fixed zerofill,precision=2}}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
	boxplot/draw direction=y,
	ymajorgrids,
	axis x line=bottom,		
		xtick={1,2},	
		xticklabel={\tick},
%		xticklabel style={/pgf/number format/fixed,/pgf/number format/precision=3}
		xticklabel style={/pgf/number format/precision=3}
    ]
\addplot[boxplot prepared={
		draw position=1,
		lower whisker=1,
		lower quartile=1.5,
		median=2,
		upper quartile=2,
		upper whisker=3,
		box extend=0.5,
		},] coordinates{};	
\addplot[boxplot prepared={
		draw position=2,
		lower whisker=1,
		lower quartile=1.5,
		median=2,
		upper quartile=2,
		upper whisker=3,
		box extend=0.5,
		},] coordinates{};	
\end{axis}
\end{tikzpicture}
\end{document}

Vielen Dank für eure Hilfe!

Gruß Phil

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

Beitrag von esdd »

Mit xticklabel={\tick} stellst Du die Wirkung Deiner Zahlenformatierungsversuche ab. Entweder Du nimmst xticklabel=\axisdefaultticklabel oder xticklabel={$\pgfmathprintnumber{\tick}$}. Da das aber die Voreinstellung ist, kannst Du xticklabel auch weglassen. Dann bekommst Du 1 und 2 an der x-Achse.

Wenn Du noch zwei Nachkommastellen haben willst, auch wenn diese Null sind, dann ergänze xticklabel style={/pgf/number format/fixed zerofill}
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepgfplotslibrary{statistics}      
\pgfplotsset{compat=newest}

\pgfplotsset{xticklabel style={/pgf/number format/fixed zerofill}}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
   boxplot/draw direction=y,
   ymajorgrids,
   axis x line=bottom,      
   xtick={1,2},   
]
\addplot[boxplot prepared={
      draw position=1,
      lower whisker=1,
      lower quartile=1.5,
      median=2,
      upper quartile=2,
      upper whisker=3,
      box extend=0.5,
      },] coordinates{};   
\addplot[boxplot prepared={
      draw position=2,
      lower whisker=1,
      lower quartile=1.5,
      median=2,
      upper quartile=2,
      upper whisker=3,
      box extend=0.5,
      },] coordinates{};   
\end{axis}
\end{tikzpicture}
\end{document}

Phil100%Vol
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mi 21. Jun 2017, 06:50

Beitrag von Phil100%Vol »

Vielen Dank, dein Vorschlag hat funktioniert. Leider habe ich noch etwas vergessen. Es soll dann unter den boxplots so etwas stehen wie x1 und x2

Wenn ich jetzt dies :
   xticklabel={$\pgfmathprintnumber{\tick}$}
anpasse zu:
   xticklabel={$\pgfmathprintnumber{x_\tick}$}
bekomme ich nur eine Fehler. Auch das x vor dem $\pgfmath ... bringt nichts.
Was genau bedeutet Zahlenformatierungsversuche?

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

Beitrag von esdd »

Damit waren Deine Codezeilen gemeint, mit denen Du versucht hast, die Zahlen an der x-Achse zu formatieren, die aber keinen Einfluss hatten.

Das x darf natürlich nicht im Argument von \pgfmathprintnumber stehen. Nimm
xticklabel={$x_{\pgfmathprintnumber{\tick}}$}

Phil100%Vol
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mi 21. Jun 2017, 06:50

Beitrag von Phil100%Vol »

Funktioniert wie gewollt! Danke :!:

Antworten