Langkau ke kandungan

Bar ralat dengan pgfplots

Tambah error bars/.cd, y dir=both, y explicit pada pilihan \addplot dan tulis setiap ralat selepas titiknya sebagai +- (0, error), atau baca ralat daripada lajur jadual dengan y error=.

Ralat yang ditulis bersama titik

Bar ralat dihidupkan bagi setiap \addplot. Kekunci selepas error bars/.cd menyatakan arah untuk melukisnya dan dari mana nilainya datang. Dengan y explicit, setiap titik membawa ralatnya sendiri selepas +-.

Ralat y simetri daripada koordinat

LaTeXMukadimah: \usepackage{pgfplots}Buka dalam editor (dibuka dalam tab baharu)
\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}

Dalam +- (ex, ey) nombor pertama ialah ralat x dan nombor kedua ralat y. Hanya arah yang anda hidupkan dilukis.

Ralat daripada lajur jadual

Apabila data berupa jadual, namakan lajur ralat dengan y error=. Cara yang sama berfungsi dengan fail, contohnya table[x=t, y=v, y error=dv, col sep=comma] {data.csv}.

Ralat y dibaca daripada lajur

LaTeXMukadimah: \usepackage{pgfplots}Buka dalam editor (dibuka dalam tab baharu)
\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}

Ralat sehala dan tetap

y dir=plus atau y dir=minus hanya melukis separuh atas atau separuh bawah. Selain nilai eksplisit, y fixed=0.2 memberikan setiap titik ralat yang sama, dan y fixed relative=0.1 ralat sebanyak 10% daripada nilainya.

Ralat atas sahaja, dan ralat relatif

LaTeXMukadimah: \usepackage{pgfplots}Buka dalam editor (dibuka dalam tab baharu)
\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}
Disusun atur oleh Scissor LaTeX: Ralat atas sahaja, dan ralat relatif

Ralat berbeza di atas dan di bawah

Tulis += (0, up) untuk ralat atas dan -= (0, down) untuk ralat bawah.

Ralat tidak simetri

LaTeXMukadimah: \usepackage{pgfplots}Buka dalam editor (dibuka dalam tab baharu)
\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}

Ralat dalam x dan y

Hidupkan kedua-dua arah dengan x dir dan y dir. error bar style menggayakan bar.

Bar ralat dalam kedua-dua arah

LaTeXMukadimah: \usepackage{pgfplots}Buka dalam editor (dibuka dalam tab baharu)
\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}

Jalur ralat dengan fill between

Untuk ketakpastian yang berterusan, lorekkan kawasan antara lengkung atas dan lengkung bawah. Muatkan pustaka fillbetween, namakan kedua-dua lengkung dengan name path, dan isikan ruang antaranya.

Jalur berlorek di sekeliling lengkung

\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}

Pilihan bar ralat

PilihanFungsinyaDalam Scissor LaTeX
y dir=both, plus, minus, noneseparuh bar yang mana hendak dilukis (juga x dir)Berfungsi
y explicit, x explicitralat daripada +- dalam koordinat atau daripada lajur jadualBerfungsi
y error=col, x error=col, y error index=nlajur jadual yang mengandungi ralatBerfungsi
+= (ex,ey), -= (ex,ey)ralat atas dan bawah yang berasingan dalam koordinatBerfungsi
y fixed=v, y fixed relative=rralat yang sama untuk setiap titikBerfungsi
error bar style={..}warna dan lebar garis barBerfungsi
error mark=.., error mark options={..}penutup pada setiap hujungDiterima, tetapi penutup sentiasa garis pendek

Perbezaan dengan pemasangan TeX

Manual pgfplots menerangkan bar ralat dalam bahagiannya tentang bar ralat: ctan.org/pkg/pgfplots.

Lihat juga Carta bar, Plot serakan dan Data daripada CSV.

Soalan dan jawapan

Bagaimanakah cara menambah bar ralat dalam pgfplots?

Tulis \addplot+[error bars/.cd, y dir=both, y explicit] coordinates {(1,2) +- (0,0.3) ...};. Nombor kedua selepas +- ialah ralat y.

Bagaimanakah cara membaca bar ralat daripada fail CSV?

Tambah y error=column pada pilihan jadual, bersama y explicit dalam pilihan bar ralat: table[x=a, y=b, y error=c, col sep=comma] {file.csv}.

Bolehkah bar ralat berbeza di atas dan di bawah?

Ya. Tulis += (0, up) dan -= (0, down) selepas titik dan bukannya +-, seperti dalam (1,2) += (0,0.5) -= (0,0.1).

Setiap contoh di halaman ini disusun atur oleh Scissor LaTeX semasa laman dibina. Kali terakhir dikemas kini 2026-11-07.