Đồ thị phân tán với pgfplots
Thêm only marks vào một \addplot trong một axis của pgfplots để các điểm được vẽ mà không có đường nối; chọn hình dạng bằng mark= và đọc các điểm từ tọa độ hoặc từ một bảng.
Điểm không có đường nối
Đồ thị phân tán là một chuỗi chỉ được vẽ bằng điểm đánh dấu. Thêm only marks vào \addplot, kèm + để giữ màu và điểm đánh dấu của danh sách chu kỳ.
Hai nhóm điểm
\begin{tikzpicture}
\begin{axis}[xlabel={Height (m)}, ylabel={Mass (kg)}, legend pos=north west]
\addplot+[only marks] coordinates {
(1.62,55) (1.68,61) (1.71,66) (1.75,69) (1.80,74) (1.84,79)};
\addplot+[only marks] coordinates {
(1.58,49) (1.64,57) (1.69,58) (1.73,64) (1.77,68)};
\legend{Group A, Group B}
\end{axis}
\end{tikzpicture}Hình dạng, kích thước và màu của điểm
mark= đặt hình dạng và mark size= đặt bán kính (mặc định 2pt). Các hình được tô kín kết thúc bằng *. mark options chỉ định kiểu cho điểm đánh dấu, ví dụ một điểm rỗng tô màu trắng.
Điểm đánh dấu khác nhau cho từng chuỗi
\begin{tikzpicture}
\begin{axis}[enlargelimits=0.15, legend pos=outer north east]
\addplot[only marks, mark=o, blue] coordinates {(1,2) (2,3) (3,2.5)};
\addplot[only marks, mark=square*, red, mark size=3pt] coordinates {(1,1) (2,1.8) (3,1.2)};
\addplot[only marks, mark=triangle*, teal, mark options={fill=white}] coordinates {(1,3) (2,4) (3,3.8)};
\addplot[only marks, mark=x, black, mark size=4pt] coordinates {(1.5,0.5) (2.5,0.8)};
\legend{circle, square, triangle, cross}
\end{axis}
\end{tikzpicture}Các hình dạng hoạt động được liệt kê trên trang đồ thị đường.
Điểm lấy từ bảng
Khi có nhiều hơn vài điểm, hãy viết chúng thành một bảng. Hàng đầu tiên đặt tên các cột; x= và y= chọn các cột cần vẽ. Bảng có thể nằm ngay trong mã, như ở đây, hoặc trong một tệp (xem dữ liệu từ tệp CSV).
Các điểm đọc từ một bảng trong mã
\begin{tikzpicture}
\begin{axis}[xlabel={Hours studied}, ylabel={Points}]
\addplot[only marks, mark=*, blue!70!black] table[x=hours, y=points] {
hours points
2 21
3 26
4 30
5 29
6 37
7 40
8 44
};
\addplot[red, domain=2:8] {13.5 + 3.8*x};
\end{axis}
\end{tikzpicture}Đường màu đỏ là một công thức vẽ chồng lên các điểm, một cách đơn giản để thể hiện xu hướng đã khớp.
Tô màu điểm theo một giá trị
Với scatter, mỗi điểm được tô màu từ bảng màu theo một giá trị. point meta=y dùng giá trị y; scatter src=explicit cùng với meta= đọc một cột thứ ba. Thêm colorbar để hiển thị thang màu.
Các điểm tô màu theo cột thứ ba
\begin{tikzpicture}
\begin{axis}[colorbar, colormap/viridis, xlabel=$x$, ylabel=$y$]
\addplot[scatter, only marks, mark size=3pt, scatter src=explicit]
table[x=x, y=y, meta=t] {
x y t
0.5 1.0 10
1.0 2.2 15
1.6 1.4 21
2.1 3.0 28
2.8 2.1 33
3.3 3.6 44
};
\end{axis}
\end{tikzpicture}Các lớp điểm
Trong pgfplots, scatter/classes gán cho mỗi tên lớp trong một cột một kiểu điểm đánh dấu riêng. Scissor LaTeX chưa hỗ trợ tùy chọn này: nó bị bỏ qua kèm thông báo, và mọi điểm có cùng một kiểu đánh dấu.
scatter/classes: một kiểu đánh dấu cho mọi điểm
\begin{tikzpicture}
\begin{axis}[width=6cm, height=5cm]
\addplot[scatter, only marks, scatter src=explicit symbolic,
scatter/classes={a={mark=square*, blue}, b={mark=*, red}}]
table[meta=group] {
x y group
1 1 a
2 2 b
3 1.5 a
};
\end{axis}
\end{tikzpicture}Thẻ Sự cố: pgfplots option 'scatter/classes' is not supported yet
Khác biệt so với một bản cài đặt TeX
Chi tiết đầy đủ về điểm đánh dấu và các tùy chọn phân tán có trong tài liệu hướng dẫn pgfplots: ctan.org/pkg/pgfplots.
Hỏi và đáp
Làm thế nào để vẽ đồ thị phân tán không có đường nối?
Thêm only marks vào các tùy chọn của \addplot, ví dụ \addplot+[only marks] coordinates {...};.
Làm thế nào để thay đổi kích thước các điểm?
Dùng mark size=3pt trên \addplot. Giá trị này là bán kính của điểm đánh dấu.
Tôi có thể vẽ các điểm từ tệp CSV không?
Có. Tải tệp lên dự án và viết \addplot+[only marks] table[x=a, y=b, col sep=comma] {file.csv};.
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.