pgfplots cơ bản: vẽ đồ thị trong LaTeX qua ví dụ
Nạp pgfplots, mở một tikzpicture chứa một axis bên trong, và thêm mỗi chuỗi dữ liệu bằng \addplot, dưới dạng danh sách tọa độ hoặc một công thức.
Đồ thị nhỏ nhất
Mọi đồ thị pgfplots đều có ba lớp giống nhau: một tikzpicture, một axis bên trong nó, và một \addplot cho mỗi chuỗi dữ liệu. Nạp gói bằng \usepackage{pgfplots} trong phần mở đầu.
Bốn điểm nối bằng một đường
\begin{tikzpicture}
\begin{axis}
\addplot coordinates {(0,1) (1,3) (2,2) (3,4)};
\end{axis}
\end{tikzpicture}Trục tự chọn khoảng giá trị và các vạch chia từ dữ liệu. Một \addplot không có tùy chọn lấy màu và kiểu điểm đánh dấu từ danh sách chu kỳ mặc định: màu xanh với điểm tròn cho chuỗi đầu tiên, màu đỏ với hình vuông cho chuỗi thứ hai, và cứ thế tiếp tục.
Vẽ một công thức
Thay vì tọa độ, hãy đưa cho \addplot một công thức trong ngoặc nhọn. domain đặt khoảng của x và samples đặt số điểm. Nếu không có chúng, pgfplots dùng khoảng từ -5 đến 5 với 25 điểm mẫu.
Một hàm số với domain và samples
\begin{tikzpicture}
\begin{axis}
\addplot[blue, thick, domain=-2:2, samples=60] {x^3 - 2*x};
\end{axis}
\end{tikzpicture}Các tùy chọn trong ngoặc vuông sau \addplot định kiểu cho chuỗi đó. Khi bạn đưa tùy chọn mà không có +, chuỗi được vẽ màu đen (hoặc màu bạn nêu) và không có điểm đánh dấu; \addplot+[...] giữ kiểu của danh sách chu kỳ và thêm các tùy chọn của bạn vào đó.
Nhãn, tiêu đề, chú giải và lưới
Các tùy chọn này đặt trên axis, nên chúng ảnh hưởng đến toàn bộ đồ thị.
Nhãn trục, tiêu đề, chú giải và lưới
\begin{tikzpicture}
\begin{axis}[
title={Cooling of a cup of tea},
xlabel={Time (min)},
ylabel={Temperature ($^\circ$C)},
grid=major,
legend pos=north east,
]
\addplot coordinates {(0,80) (5,64) (10,53) (15,44) (20,38)};
\addlegendentry{Measured}
\addplot[red, domain=0:20, samples=40] {22 + 58*exp(-0.08*x)};
\addlegendentry{Model}
\end{axis}
\end{tikzpicture}Nhãn là văn bản, nên công thức toán đặt giữa $ ... $ như trong một đoạn văn. \addlegendentry sau mỗi \addplot đặt tên cho chuỗi đó; bạn cũng có thể liệt kê mọi tên ở cuối bằng \legend{Measured, Model}.
Các tùy chọn trục thông dụng
| Tùy chọn | Tác dụng | Trong Scissor LaTeX |
|---|---|---|
xlabel, ylabel, title | văn bản dọc theo các trục và phía trên đồ thị | Hoạt động |
xmin, xmax, ymin, ymax | cố định khoảng hiển thị | Hoạt động |
width, height | kích thước của cả hình, ví dụ width=\linewidth | Hoạt động |
grid=major, grid=both | đường lưới tại các vạch chia chính (và phụ) | Hoạt động |
xtick={0,1,2}, xticklabels={a,b,c} | chọn các vạch chia và nhãn của chúng | Hoạt động |
legend pos=north west | north west, north east, south west, south east, outer north east | Hoạt động |
axis lines=left | một cặp trục hình chữ L có mũi tên thay vì khung | Hoạt động (cả middle, center, none) |
enlargelimits=false | không có khoảng trống thêm quanh dữ liệu | Hoạt động |
axis equal | cùng tỉ lệ trên cả hai trục | Chưa hỗ trợ: bị bỏ qua kèm thông báo trong thẻ Sự cố |
Phần lớn các tùy chọn khác trong tài liệu hướng dẫn pgfplots cũng hoạt động; trang đồ thị đường liệt kê các kiểu đường và điểm đánh dấu. Một tùy chọn mà bộ vẽ không biết sẽ bị bỏ qua, và thẻ Sự cố nêu tên nó.
Kích thước và vị trí
Theo mặc định, một đồ thị có kích thước khoảng 240 x 207 point, đúng mặc định của pgfplots. Đặt width và height trên trục để thay đổi. Để đồ thị có chú thích và số thứ tự, hãy đặt tikzpicture bên trong một figure, như với một hình ảnh.
Một đồ thị trong figure có chú thích
\begin{figure}[h]
\centering
\begin{tikzpicture}
\begin{axis}[width=7cm, height=4.5cm, xlabel=$x$, ylabel=$x^2$]
\addplot[domain=0:2, samples=30] {x^2};
\end{axis}
\end{tikzpicture}
\caption{A parabola on $[0, 2]$.}
\label{fig:parabola}
\end{figure}
Figure~\ref{fig:parabola} shows the parabola.\resizebox{0.5\linewidth}{!}{...} bao quanh một tikzpicture duy nhất cũng hoạt động: hình được co giãn theo chiều rộng đó.
Khác biệt so với một bản cài đặt TeX
Mọi thứ trên trang này cũng biên dịch được trong một bản cài đặt TeX có pgfplots. Tài liệu hướng dẫn đầy đủ có trên CTAN: ctan.org/pkg/pgfplots.
Hỏi và đáp
Tôi có cần cài đặt pgfplots không?
Không. Hãy viết \usepackage{pgfplots} như bình thường. Scissor LaTeX nhận ra gói này và tự vẽ đồ thị, ngay trong trình duyệt.
Vì sao đồ thị hàm số của tôi bị răng cưa?
pgfplots mặc định nối 25 điểm. Thêm samples=100 (hoặc nhiều hơn) vào \addplot hoặc vào trục để có đường cong mượt hơn, hoặc thêm smooth để vẽ một đường cong đi qua các điểm.
Tôi có thể dùng pgfplots mà không có tikzpicture không?
Không, trong LaTeX môi trường axis luôn nằm bên trong một tikzpicture. Scissor LaTeX theo cùng quy tắc này, nên mã của bạn cũng biên dịch được ở nơi khác.
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.