Chuyển đến nội dung

Đồ 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

LaTeXPhần mở đầu: \usepackage{pgfplots}Mở trong trình soạn (mở trong thẻ mới)
\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}
Dàn trang bởi Scissor LaTeX: Hai nhóm điểm

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

LaTeXPhần mở đầu: \usepackage{pgfplots}Mở trong trình soạn (mở trong thẻ mớ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ã

LaTeXPhần mở đầu: \usepackage{pgfplots}Mở trong trình soạn (mở trong thẻ mới)
\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

LaTeXPhần mở đầu: \usepackage{pgfplots}Mở trong trình soạn (mở trong thẻ mới)
\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

LaTeXPhần mở đầu: \usepackage{pgfplots}Mở trong trình soạn (mở trong thẻ mới)
\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.