Перейти до вмісту

Планки похибок з pgfplots

Додайте error bars/.cd, y dir=both, y explicit до параметрів \addplot і пишіть кожну похибку після її точки як +- (0, error) або читайте похибки зі стовпця таблиці через y error=.

Похибки, записані разом із точками

Планки похибок вмикаються для кожного \addplot окремо. Ключі після error bars/.cd вказують, у якому напрямку їх малювати і звідки беруться значення. З y explicit кожна точка має власну похибку після +-.

Симетричні похибки по y з координат

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[xlabel={Length (m)}, ylabel={Period (s)}]
    \addplot+[error bars/.cd, y dir=both, y explicit]
      coordinates {
        (0.2,0.90) +- (0,0.05)
        (0.4,1.27) +- (0,0.04)
        (0.6,1.55) +- (0,0.06)
        (0.8,1.80) +- (0,0.05)
        (1.0,2.01) +- (0,0.07)
      };
  \end{axis}
\end{tikzpicture}

У +- (ex, ey) перше число є похибкою по x, а друге похибкою по y. Малюються лише ті напрямки, які ви ввімкнули.

Похибки зі стовпця таблиці

Коли дані є таблицею, назвіть стовпець похибок через y error=. Те саме працює з файлом, наприклад table[x=t, y=v, y error=dv, col sep=comma] {data.csv}.

Похибки по y зі стовпця

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[xlabel={Dose}, ylabel={Response}, ymin=0]
    \addplot+[only marks, error bars/.cd, y dir=both, y explicit]
      table[x=dose, y=mean, y error=sd] {
        dose mean sd
        1    2.1  0.3
        2    3.4  0.4
        4    5.0  0.6
        8    6.2  0.5
      };
  \end{axis}
\end{tikzpicture}

Однобічні й фіксовані похибки

y dir=plus або y dir=minus малює лише верхню або нижню половину. Замість явних значень y fixed=0.2 дає кожній точці однакову похибку, а y fixed relative=0.1 похибку в 10% її значення.

Лише верхні похибки та відносна похибка

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[ymin=0, legend pos=north west]
    \addplot+[error bars/.cd, y dir=plus, y fixed=0.4]
      coordinates {(1,2) (2,3) (3,3.5) (4,4.4)};
    \addplot+[error bars/.cd, y dir=both, y fixed relative=0.1]
      coordinates {(1,1) (2,1.6) (3,2.2) (4,2.5)};
    \legend{fixed $\pm 0.4$ (upper), relative 10\%}
  \end{axis}
\end{tikzpicture}
Зверстано в Scissor LaTeX: Лише верхні похибки та відносна похибка

Різні похибки зверху й знизу

Пишіть += (0, up) для верхньої похибки та -= (0, down) для нижньої.

Асиметричні похибки

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[width=7cm, height=5cm, xmin=0.5, xmax=3.5]
    \addplot+[only marks, error bars/.cd, y dir=both, y explicit]
      coordinates {
        (1,2.0) += (0,0.5) -= (0,0.1)
        (2,3.0) += (0,0.2) -= (0,0.6)
        (3,2.6) += (0,0.3) -= (0,0.3)
      };
  \end{axis}
\end{tikzpicture}

Похибки по x і y

Увімкніть обидва напрямки через x dir і y dir. error bar style задає стиль планок.

Планки похибок в обох напрямках

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[xlabel=$x$, ylabel=$y$]
    \addplot+[only marks, mark=square*,
              error bars/.cd,
                x dir=both, x explicit,
                y dir=both, y explicit,
                error bar style={red, thick}]
      coordinates {
        (1.0,1.2) +- (0.15,0.20)
        (2.0,2.1) +- (0.20,0.15)
        (3.0,2.8) +- (0.10,0.30)
      };
  \end{axis}
\end{tikzpicture}

Смуги похибок з fill between

Для неперервної невизначеності зафарбуйте область між верхньою та нижньою кривими. Завантажте бібліотеку fillbetween, назвіть обидві криві через name path і заповніть простір між ними.

Зафарбована смуга навколо кривої

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[domain=0:4, samples=40, xlabel=$t$, ylabel=$y$]
    \addplot[name path=upper, draw=none] {exp(-0.5*x) + 0.1 + 0.05*x};
    \addplot[name path=lower, draw=none] {exp(-0.5*x) - 0.1 - 0.05*x};
    \addplot[blue!20] fill between[of=upper and lower];
    \addplot[blue, thick] {exp(-0.5*x)};
  \end{axis}
\end{tikzpicture}
\end{document}

Параметри планок похибок

ПараметрЩо робитьУ Scissor LaTeX
y dir=both, plus, minus, noneяку половину планки малювати (також x dir)Працює
y explicit, x explicitпохибки з +- у координатах або зі стовпця таблиціПрацює
y error=col, x error=col, y error index=nстовпець таблиці з похибкамиПрацює
+= (ex,ey), -= (ex,ey)окремі верхні й нижні похибки в координатахПрацює
y fixed=v, y fixed relative=rоднакова похибка для кожної точкиПрацює
error bar style={..}колір і товщина лінії планокПрацює
error mark=.., error mark options={..}засічка на кожному кінціПриймається, але засічка завжди є короткою лінією

Чим це відрізняється від установленого TeX

Посібник pgfplots описує планки похибок в окремому розділі: ctan.org/pkg/pgfplots.

Див. також стовпчикові діаграми, точкові діаграми і дані з CSV.

Запитання й відповіді

Як додати планки похибок у pgfplots?

Напишіть \addplot+[error bars/.cd, y dir=both, y explicit] coordinates {(1,2) +- (0,0.3) ...};. Друге число після +- є похибкою по y.

Як прочитати планки похибок з файлу CSV?

Додайте y error=column до параметрів таблиці разом із y explicit у параметрах планок похибок: table[x=a, y=b, y error=c, col sep=comma] {file.csv}.

Чи можуть похибки бути різними зверху й знизу?

Так. Пишіть після точки += (0, up) і -= (0, down) замість +-, як у (1,2) += (0,0.5) -= (0,0.1).

Кожен приклад на цій сторінці верстається в Scissor LaTeX під час збирання сайту. Оновлено 2026-11-07.