Andreas
14-10-2014, 19:55
Hallo zusammen.
Ich würde gerne bei folgendem Diagramm ein paar kleine Änderungen vornehmen. Das bereitet mir jetzt schon seit 2 Tagen Schwierigkeiten!
1. Würde ich gerne zusätzlich zu dem Stern die jeweiligen Daten über dem Balken stehen haben. Diese sollten sich dabei nicht mit dem Fehlerbalken überlappen.
2. Wie kann ich die Fehlerbalken und den Stern in die Farbe Schwarz ändern?
3. Gibt es eine möglichkeit die y-Achse um ein paar Millimeter zu verlängern, sodass der Pfeil nicht direkt unter dem Querbalken endet?
4. Ich würde das Diagramm am Ende gerne in eine Subfigure-Umgebung einbinden. Dabei bekomme ich allerdings immer eine Fehlermeldung, dass irgendwo eine } fehlt. Ich hab schon alles versucht. Hat jemand eine Idee wie ich das machen kann.
\documentclass{article}
\usepackage[libertine]{newtxmath}
\usepackage{pgfplots}
%\pgfplotsset{compat=1.11}
\usepackage{filecontents}
\usepackage{tikz}
\usepackage{pgfplotstable}
\usetikzlibrary{positioning}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{arrows}
\usetikzlibrary{patterns}
\begin{document}
\begin{filecontents}{data1.dat}
X Y Y_error Label
a 1 0 \\
b .155 .038 $\star$
c 0.80 0.019 $\star$
d 0.54 0.027 \\
\end{filecontents}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
bar width=1cm, % Width of the bar
x=2cm, % Distance between the centers of the bars
enlarge x limits={abs=1cm}, % The distance between the center of the first bar and the left edge
enlarge y limits=false,
symbolic x coords={a,b,c,d},
ymin=0,
xtick=data,
ybar,
axis x line*=bottom,
axis y line=left,
clip=false,
% point meta={y*100}, %y-Werte mal 100 für Prozent
point meta=explicit symbolic,
yticklabel={\pgfmathparse{\tick*100}\pgfmathprintn umber{\pgfmathresult}\%} ,
nodes near coords,
nodes near coords align={vertical},
visualization depends on=abs(y)/y*(0.1+\thisrow{Y_error}) \as \myshift,
every node near coord/.append style={
anchor=center,shift={(0,transformdirectiony(\myshi ft))},
}]
\addplot+[draw=black, fill=white, error bars/.cd, y dir=both, y explicit, ]
table[x=X, y=Y, y error=Y_error, meta=Label,] {data1.dat};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
6091
Ich würde gerne bei folgendem Diagramm ein paar kleine Änderungen vornehmen. Das bereitet mir jetzt schon seit 2 Tagen Schwierigkeiten!
1. Würde ich gerne zusätzlich zu dem Stern die jeweiligen Daten über dem Balken stehen haben. Diese sollten sich dabei nicht mit dem Fehlerbalken überlappen.
2. Wie kann ich die Fehlerbalken und den Stern in die Farbe Schwarz ändern?
3. Gibt es eine möglichkeit die y-Achse um ein paar Millimeter zu verlängern, sodass der Pfeil nicht direkt unter dem Querbalken endet?
4. Ich würde das Diagramm am Ende gerne in eine Subfigure-Umgebung einbinden. Dabei bekomme ich allerdings immer eine Fehlermeldung, dass irgendwo eine } fehlt. Ich hab schon alles versucht. Hat jemand eine Idee wie ich das machen kann.
\documentclass{article}
\usepackage[libertine]{newtxmath}
\usepackage{pgfplots}
%\pgfplotsset{compat=1.11}
\usepackage{filecontents}
\usepackage{tikz}
\usepackage{pgfplotstable}
\usetikzlibrary{positioning}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{arrows}
\usetikzlibrary{patterns}
\begin{document}
\begin{filecontents}{data1.dat}
X Y Y_error Label
a 1 0 \\
b .155 .038 $\star$
c 0.80 0.019 $\star$
d 0.54 0.027 \\
\end{filecontents}
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
bar width=1cm, % Width of the bar
x=2cm, % Distance between the centers of the bars
enlarge x limits={abs=1cm}, % The distance between the center of the first bar and the left edge
enlarge y limits=false,
symbolic x coords={a,b,c,d},
ymin=0,
xtick=data,
ybar,
axis x line*=bottom,
axis y line=left,
clip=false,
% point meta={y*100}, %y-Werte mal 100 für Prozent
point meta=explicit symbolic,
yticklabel={\pgfmathparse{\tick*100}\pgfmathprintn umber{\pgfmathresult}\%} ,
nodes near coords,
nodes near coords align={vertical},
visualization depends on=abs(y)/y*(0.1+\thisrow{Y_error}) \as \myshift,
every node near coord/.append style={
anchor=center,shift={(0,transformdirectiony(\myshi ft))},
}]
\addplot+[draw=black, fill=white, error bars/.cd, y dir=both, y explicit, ]
table[x=X, y=Y, y error=Y_error, meta=Label,] {data1.dat};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
6091