Đồ thị đường với pgfplots
Thêm một \addplot cho mỗi đường bên trong một axis; định kiểu từng đường bằng các tùy chọn như red, dashed, thick hoặc mark=square*, hoặc để danh sách chu kỳ chọn kiểu cho bạn.
Nhiều đường trên một trục
Mỗi \addplot thêm một chuỗi dữ liệu. Không có tùy chọn, các chuỗi lần lượt lấy kiểu từ danh sách chu kỳ. Với \addplot+[...] bạn giữ kiểu đó và chỉ thay đổi một phần.
Ba chuỗi từ danh sách chu kỳ mặc định
\begin{tikzpicture}
\begin{axis}[xlabel=Week, ylabel=Orders, legend pos=north west]
\addplot coordinates {(1,12) (2,18) (3,25) (4,31) (5,44)};
\addplot coordinates {(1,10) (2,14) (3,15) (4,21) (5,24)};
\addplot+[dashed] coordinates {(1,5) (2,9) (3,8) (4,12) (5,13)};
\legend{Erika, Hans, John}
\end{axis}
\end{tikzpicture}Kiểu đường và điểm đánh dấu
Các tùy chọn sau \addplot đặt màu, kiểu đường và điểm đánh dấu. Bạn có thể kết hợp chúng tùy ý.
| Tùy chọn | Giá trị | Trong Scissor LaTeX |
|---|---|---|
| màu | red, blue!60!black, color=teal, mọi tên màu hoặc phối màu của xcolor | Hoạt động |
| độ dày đường | ultra thin, very thin, thin, semithick, thick, very thick, ultra thick, line width=1.5pt | Hoạt động |
| kiểu nét | solid, dashed, dotted, densely dashed, loosely dotted, dashdotted, dash pattern=on 4pt off 2pt | Hoạt động |
mark= | *, o, square*, square, triangle*, triangle, diamond*, diamond, x, +, star, pentagon*, asterisk, otimes*, |, -, none | Hoạt động |
mark size=3pt | bán kính của điểm đánh dấu | Hoạt động |
mark options={fill=white} | kiểu chỉ áp dụng cho điểm đánh dấu | Hoạt động |
mark repeat=2 | một điểm đánh dấu trên mỗi điểm thứ hai | Hoạt động |
no marks, only marks | chỉ đường, chỉ điểm đánh dấu | Hoạt động |
Màu, kiểu nét và điểm đánh dấu
\begin{tikzpicture}
\begin{axis}[domain=0:4, samples=9, legend pos=outer north east]
\addplot[blue, thick, mark=*] {x};
\addplot[red, dashed, mark=square*, mark options={fill=white}] {x^1.5/2};
\addplot[teal, densely dotted, very thick] {sqrt(x)};
\addplot[orange, mark=triangle*, mark size=3pt, only marks] {4 - x};
\legend{linear, power, root, falling}
\end{axis}
\end{tikzpicture}Điểm đánh dấu luôn được vẽ bằng nét liền, kể cả trên một chuỗi nét đứt, giống như trong pgfplots.
Chọn danh sách chu kỳ
Danh sách chu kỳ là dãy các kiểu mà những lệnh \addplot không có tùy chọn sử dụng. Chọn một danh sách có sẵn bằng cycle list name, hoặc tự viết bằng cycle list.
Danh sách chu kỳ black white và một danh sách tự tạo
\begin{tikzpicture}
\begin{axis}[cycle list name=black white, width=6.5cm, height=5cm, title={black white}]
\addplot coordinates {(0,0) (1,1) (2,4)};
\addplot coordinates {(0,1) (1,2) (2,2)};
\addplot coordinates {(0,2) (1,0) (2,1)};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[cycle list={{red, thick}, {blue, dashed}}, width=6.5cm, height=5cm, title={custom}]
\addplot coordinates {(0,0) (1,1) (2,4)};
\addplot coordinates {(0,1) (1,2) (2,2)};
\end{axis}
\end{tikzpicture}Các tên có sẵn hoạt động được: color (mặc định), exotic, black white, mark list và linestyles. \pgfplotscreateplotcyclelist{name}{...} trong phần mở đầu định nghĩa một danh sách bạn có thể dùng lại.
Đường cong mượt và bậc thang
smooth vẽ một đường cong đi qua các điểm thay vì các đoạn thẳng; tension (mặc định 0.55) điều chỉnh độ cong. const plot vẽ một hàm bậc thang giữ nguyên mỗi giá trị cho đến điểm tiếp theo.
smooth và const plot
\begin{tikzpicture}
\begin{axis}[ymin=0, legend pos=north west]
\addplot+[smooth] coordinates {(0,1) (1,2.5) (2,1.8) (3,3.2) (4,2.4)};
\addplot+[const plot] coordinates {(0,0.5) (1,1) (2,1.5) (3,1.2) (4,2)};
\legend{smooth, const plot}
\end{axis}
\end{tikzpicture}Hàm số theo độ và radian
Công thức dùng pgfmath: + - * / ^, dấu ngoặc, sqrt, exp, ln, abs, min, max, sin, cos, tan và nhiều hàm khác, với pi và e là hằng số. Góc tính theo độ, nên hãy đổi radian bằng deg(x).
sin và cos trong một chu kỳ
\begin{tikzpicture}
\begin{axis}[domain=0:2*pi, samples=80, xlabel=$t$,
xtick={0,1.5708,3.1416,4.7124,6.2832},
xticklabels={$0$,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,$2\pi$},
legend pos=south west]
\addplot[blue, thick] {sin(deg(x))};
\addplot[red, thick, dashed] {cos(deg(x))};
\legend{$\sin t$, $\cos t$}
\end{axis}
\end{tikzpicture}Đường cong tham số
Để vẽ một đường cong cho bởi x(t) và y(t), hãy viết cả hai công thức trong ngoặc tròn, cách nhau bằng dấu phẩy, và đặt variable=t.
Một đường cong Lissajous
\begin{tikzpicture}
\begin{axis}[axis lines=middle, xmin=-1.3, xmax=1.3, ymin=-1.3, ymax=1.3]
\addplot[purple, thick, domain=0:360, samples=120, variable=t]
({cos(t)}, {sin(2*t)});
\end{axis}
\end{tikzpicture}Chỗ ngắt trên đường cong
Một hàm như 1/x vọt lên vô cùng. restrict y to domain loại bỏ các điểm nằm ngoài một khoảng, và unbounded coords=jump ngắt đường tại đó thay vì nối hai nhánh với nhau. Đặt cả hai trên \addplot.
1/x với một chỗ ngắt tại 0
\begin{tikzpicture}
\begin{axis}[ymin=-10, ymax=10, axis lines=middle]
\addplot[blue, thick, domain=-3:3, samples=200,
restrict y to domain=-10:10, unbounded coords=jump] {1/x};
\end{axis}
\end{tikzpicture}Khác biệt so với một bản cài đặt TeX
Tài liệu hướng dẫn pgfplots trên CTAN mô tả mọi tùy chọn: ctan.org/pkg/pgfplots. Với các điểm không có đường nối, xem đồ thị phân tán.
Xem thêm pgfplots cơ bản, Trục logarit, Nhóm đồ thị và Dữ liệu từ CSV.
Hỏi và đáp
Làm thế nào để vẽ một hàm số trong LaTeX?
Viết \addplot[domain=a:b, samples=n] {formula}; bên trong một axis, dùng x làm biến, ví dụ {x^2 - 1}.
Làm thế nào để bỏ điểm đánh dấu khỏi một đường?
Thêm no marks vào các tùy chọn của \addplot, hoặc đưa tùy chọn mà không có + (ví dụ \addplot[blue]), khi đó đường được vẽ trơn.
Vì sao sin(x) trông gần như nằm ngang?
pgfplots đọc góc theo độ, nên sin(x) trên khoảng 0 đến 6 chỉ bao phủ 6 độ. Hãy viết sin(deg(x)).
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.