
실험의 pH 결과를 플로팅하고 있는데 측정 불확실성은 ± 0.1입니다.
\documentclass[10pt]{standalone}
\usepackage{pgfplots}
\usepackage{siunitx}
\usepackage{tikz}
\usepackage{mhchem}
\usetikzlibrary{patterns}
\pgfplotsset{compat=1.16}
\definecolor{mygray}{HTML}{c7c7c7}
\definecolor{myblue}{HTML}{4385f5}
\definecolor{myred}{HTML}{ea4136}
\definecolor{myorange}{HTML}{fcbc05}
\begin{document}
\begin{tikzpicture}
\centering
\begin{axis}[
ybar=0pt, enlarge x limits=0.25, legend style={at={(0.5,-0.15)},anchor=north,legend columns=-1,/tikz/every even column/.append style={column sep=0.1cm}}, legend style={draw=none,/tikz/every even column/.append style={column sep=0.3cm}},
height=6cm, width=11cm,
ymajorgrids, tick align=inside,
ymin=0, ymax=14,
ytick={0,2,4,...,14},
ylabel={pH},
y axis line style={opacity=0},
tickwidth=0pt,
ylabel={pH},
symbolic x coords={Reference, Aabach, Kleine Emme, Grosse Aa},
xtick=data,
nodes near coords,every node near coord/.append style={font=\tiny},
bar width=13pt,
cycle list={
{fill=mygray,draw=black},
{fill=myred,draw=black},
{fill=myblue,draw=black},
{fill=myorange,draw=black}}
]
\addplot coordinates {(Reference,7.3) (Aabach,8.5) (Kleine Emme, 8.2) (Grosse Aa, 8.1)};
\addplot coordinates {(Reference,7.8) (Aabach,8.5) (Kleine Emme, 8.3) (Grosse Aa, 8.3)};
\addplot coordinates {(Reference,7.8) (Aabach,8.4) (Kleine Emme, 7.9) (Grosse Aa, 8.2)};
\addplot coordinates {(Reference,7.8) (Aabach,7.8) (Kleine Emme,7.7) (Grosse Aa,7.8)};
\legend{NT, DN, SYF, NAF}
\addplot+ [ %from https://tex.stackexchange.com/questions/470674/adding-error-bars-to-bar-plot and https://tex.stackexchange.com/questions/424758/plotting-error-bars-in-pgf-plots
error bars/.cd,
y dir=both,
y fixed=0.1,
] coordinates {
(Reference,7.3) +- (0,0.1)
(Kleine Emme,7.9) +- (0,0.1)
};
\end{axis}
\end{tikzpicture}
\end{document}
x-tick당 막대 4개만 가질 수 있고 각각 오류 막대가 있을 수 있습니까?
답변1
오류 막대를 그리는 다른 명령을 추가하는 대신 \addplot
- 원하지 않는 막대가 추가되므로 이전 \addplot
명령 각각에 "오류 막대" 항목을 추가해야 합니다. 반복해서 반복하지 않으려면 이러한 옵션을 옵션에 추가할 수도 있습니다 axis
.
자세한 내용은 코드의 주석을 살펴보세요.
% used PGFPlots v1.16
\documentclass[border=5pt]{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.25,
% (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=11cm,
ymajorgrids,
tick align=inside,
ymin=0,
ymax=14,
ytick distance=2, % <-- (changed)
ylabel={pH},
y axis line style={opacity=0},
tickwidth=0pt,
ylabel={pH},
symbolic x coords={Reference, Aabach, Kleine Emme, Grosse Aa},
xtick=data,
nodes near coords,
every node near coord/.append style={font=\tiny},
bar width=13pt,
cycle list={
{fill=mygray,draw=black},
{fill=myred,draw=black},
{fill=myblue,draw=black},
{fill=myorange,draw=black}%
},
error bars/y dir=both, % <-- added
error bars/y fixed=0.1, % <-- added
]
\addplot coordinates {(Reference,7.3) (Aabach,8.5) (Kleine Emme,8.2) (Grosse Aa,8.1)};
\addplot coordinates {(Reference,7.8) (Aabach,8.5) (Kleine Emme,8.3) (Grosse Aa,8.3)};
\addplot coordinates {(Reference,7.8) (Aabach,8.4) (Kleine Emme,7.9) (Grosse Aa,8.2)};
\addplot coordinates {(Reference,7.8) (Aabach,7.8) (Kleine Emme,7.7) (Grosse Aa,7.8)};
\legend{NT, DN, SYF, NAF}
\end{axis}
\end{tikzpicture}
\end{document}