Thanh sai số với pgfplots
Thêm error bars/.cd, y dir=both, y explicit vào các tùy chọn của \addplot và viết mỗi sai số sau điểm của nó dưới dạng +- (0, error), hoặc đọc sai số từ một cột của bảng bằng y error=.
Sai số viết cùng các điểm
Thanh sai số được bật cho từng \addplot. Các khóa sau error bars/.cd cho biết vẽ chúng theo hướng nào và giá trị lấy từ đâu. Với y explicit, mỗi điểm mang sai số riêng của nó sau +-.
Sai số y đối xứng lấy từ tọa độ
\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}Trong +- (ex, ey), số thứ nhất là sai số theo x và số thứ hai là sai số theo y. Chỉ những hướng bạn bật mới được vẽ.
Sai số từ một cột của bảng
Khi dữ liệu là một bảng, hãy chỉ ra cột sai số bằng y error=. Cách này cũng dùng được với tệp, ví dụ table[x=t, y=v, y error=dv, col sep=comma] {data.csv}.
Sai số y đọc từ một cột
\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}Sai số một phía và sai số cố định
y dir=plus hoặc y dir=minus chỉ vẽ nửa trên hoặc nửa dưới. Thay vì giá trị cụ thể, y fixed=0.2 cho mọi điểm cùng một sai số, còn y fixed relative=0.1 cho sai số bằng 10% giá trị của điểm.
Chỉ sai số phía trên, và một sai số tương đối
\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}Sai số trên và dưới khác nhau
Viết += (0, up) cho sai số phía trên và -= (0, down) cho sai số phía dưới.
Sai số không đối xứng
\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}Sai số theo x và y
Bật cả hai hướng bằng x dir và y dir. error bar style định kiểu cho các thanh.
Thanh sai số theo cả hai hướng
\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}Dải sai số với fill between
Với độ bất định liên tục, hãy tô vùng giữa một đường cong trên và một đường cong dưới. Nạp thư viện fillbetween, đặt tên cho cả hai đường bằng name path, rồi tô vùng giữa chúng.
Một dải tô màu quanh đường cong
\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}Các tùy chọn của thanh sai số
| Tùy chọn | Tác dụng | Trong Scissor LaTeX |
|---|---|---|
y dir=both, plus, minus, none | vẽ nửa nào của thanh (cũng có x dir) | Hoạt động |
y explicit, x explicit | sai số từ +- trong tọa độ hoặc từ một cột của bảng | Hoạt động |
y error=col, x error=col, y error index=n | cột của bảng chứa sai số | Hoạt động |
+= (ex,ey), -= (ex,ey) | sai số trên và dưới riêng biệt trong tọa độ | Hoạt động |
y fixed=v, y fixed relative=r | cùng một sai số cho mọi điểm | Hoạt động |
error bar style={..} | màu và độ dày nét của các thanh | Hoạt động |
error mark=.., error mark options={..} | phần chặn ở mỗi đầu thanh | Được chấp nhận, nhưng phần chặn luôn là một đoạn thẳng ngắn |
Khác biệt so với một bản cài đặt TeX
Tài liệu hướng dẫn pgfplots mô tả thanh sai số trong phần dành riêng cho chúng: ctan.org/pkg/pgfplots.
Xem thêm Biểu đồ cột, Đồ thị phân tán và Dữ liệu từ CSV.
Hỏi và đáp
Làm thế nào để thêm thanh sai số trong pgfplots?
Viết \addplot+[error bars/.cd, y dir=both, y explicit] coordinates {(1,2) +- (0,0.3) ...};. Số thứ hai sau +- là sai số theo y.
Làm thế nào để đọc thanh sai số từ tệp CSV?
Thêm y error=column vào các tùy chọn của bảng, cùng với y explicit trong các tùy chọn của thanh sai số: table[x=a, y=b, y error=c, col sep=comma] {file.csv}.
Thanh sai số phía trên và phía dưới có thể khác nhau không?
Có. Viết += (0, up) và -= (0, down) sau điểm thay cho +-, như trong (1,2) += (0,0.5) -= (0,0.1).
Mọi ví dụ trên trang này đều được Scissor LaTeX dàn trang khi xây dựng trang web. Cập nhật lần cuối 2026-11-07.