So vereinheitlichen Sie die Größe der Fehlerbalken in einem Balkendiagramm (pgfplots)

So vereinheitlichen Sie die Größe der Fehlerbalken in einem Balkendiagramm (pgfplots)

Hallo, ich habe ein Balkendiagramm mit nur 2 Mengen und möchte es so gestalten, dass jede Menge den gleichen Fehlerbalken hat (z. B. haben alle roten Balken Fehler A und alle orangefarbenen Balken haben Fehler B). Danke

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
    \pgfplotsset{compat=1.3}
    \definecolor{mygray}{HTML}{c7c7c7}
    \definecolor{myblue}{HTML}{4385f5}
    \definecolor{myred}{HTML}{ea4136}
    \definecolor{myorange}{HTML}{fcbc05}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        ybar=0pt,
        enlarge x limits=0.06,
        % (merged both styles)
        legend style={
            at={(0.5,-0.15)},
            anchor=north,
            legend columns=-1,
            draw=none,
            /tikz/every even column/.append style={column sep=0.3cm},
        },
        height=6cm,
        width=10cm,
        ymajorgrids,
        tick align=inside,
        ymin=0,
        ymax=20,
        ytick distance=2,       
        ylabel={Amplitud (grados)},
        y axis line style={opacity=0},
        tickwidth=0pt,
        ylabel={Amplitud (grados)},
        symbolic x coords={medida 1, medida 2, medida 3, medida 4, medida 5, medida 6},
        xtick=data,
        nodes near coords,
        every node near coord/.append style={font=\tiny},
        bar width=13pt,
        cycle list={
            {fill=myred,draw=black},
            {fill=myorange,draw=black},
            {fill=myblue,draw=black},
            {fill=myorange,draw=black}%
        },
        error bars/y dir=both,     
        error bars/y fixed=2,    
    ]
        \addplot coordinates {(medida 1,10) (medida 2,11) (medida 3,12) (medida 4,13) (medida 5, 14) (medida 6, 15)};
        \addplot coordinates {(medida 1,7) (medida 2,8) (medida 3,8) (medida 4,8) (medida 5, 9) (medida 6, 9)};
    
        \legend{Amplitud inicial $\theta_i$, Amplitud final $\theta_f$ }
    \end{axis}
\end{tikzpicture}
\end{document} 

Antwort1

Setzen Sie die globale Option einfach auf den lokalen Ort:
\addplot[error bars/y fixed=4, fill=red]

Hinweis 1: Ein Koordinatendiagramm würde ich nur zum Hinzufügen einzelner Punkte oder ähnlichem verwenden. Für komplexere Eingabedaten ist das Koordinatendiagramm ungeeignet. Daher habe ich daraus ein Tabellendiagramm gemacht.

Hinweis 2:Ich habe es nodes near coordsan eine besser sichtbare Stelle verschoben.

Bildbeschreibung hier eingeben

\documentclass[border=10pt]{standalone}
 \usepackage{pgfplotstable}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\pgfplotstableread[]{
X  Y1   Y2  
1   10   7    
2   11   8
3   12   8
4   13   8
5   14   9
6   15   9
}\mytable

\definecolor{mygray}{HTML}{c7c7c7}
\definecolor{myblue}{HTML}{4385f5}
\definecolor{myred}{HTML}{ea4136}
\definecolor{myorange}{HTML}{fcbc05}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
height=6cm,
width=10cm,
ybar=0pt,
bar width=13pt,
enlarge x limits=0.075, %<--- !
% (merged both styles)
legend style={
   at={(0.5,-0.15)},
  anchor=north,
  legend columns=-1,
   draw=none,
  /tikz/every even column/.append style={column sep=0.3cm},
},
ymajorgrids,
tick align=inside,
ymin=0,
ymax=20,
ytick distance=2,       
ylabel={Amplitud (grados)},
y axis line style={opacity=0},
tickwidth=0pt,
xticklabel={media \pgfmathprintnumber{\tick}}, % <---- !
xtick=data,
nodes near coords,clip=false,
every node near coord/.append style={font=\tiny},
% Suggestion  ================
visualization depends on = y \as \Yshift,  
node near coord style = {
shift = {   (axis direction cs: 0, -0.75*\Yshift) }        
},
% ================
% error bars/.cd, % <--- could be useful
error bars/y dir=both,    
%        error bars/y fixed=2,     %<--  putted to addplot
]
\addplot[error bars/y fixed=4,
fill=myred,] table[x=X, y=Y1]{\mytable};

\addplot[error bars/y fixed=0.666,
fill=myorange] table[x=X, y=Y2]{\mytable};
\legend{Amplitud inicial $\theta_i$, Amplitud final $\theta_f$ }
\end{axis}
\end{tikzpicture}
\end{document} 

% Not needed: 
%cycle list={
%{fill=myred,draw=black},
%  {fill=myorange,draw=black},
%  {fill=myblue,draw=black},
%  {fill=myorange,draw=black}%
%},

% Not needed in table plot:
%symbolic x coords={medida 1, medida 2, medida 3, medida 4, medida 5, medida 6},

%\addplot[error bars/y fixed=4, fill=myred] coordinates {(medida 1,10) (medida 2,11) (medida 3,12) (medida 4,13) (medida 5, 14) (medida 6, 15)};
%\addplot[error bars/y fixed=1, fill=myorange] coordinates {(medida 1,7) (medida 2,8) (medida 3,8) (medida 4,8) (medida 5, 9) (medida 6, 9)};

verwandte Informationen