Biểu đồ cột với pgfplots
Thêm ybar (cột đứng) hoặc xbar (cột ngang) vào một axis của pgfplots, đặt tên các danh mục bằng symbolic x coords, và đưa mỗi chuỗi dưới dạng một \addplot có tọa độ.
Cột đứng với danh mục có tên
ybar trên trục biến mọi chuỗi thành các cột. symbolic x coords liệt kê tên các danh mục theo thứ tự, và xtick=data đặt một vạch chia dưới mỗi cột.
Một chuỗi cột
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0,
symbolic x coords={Mon, Tue, Wed, Thu, Fri},
xtick=data,
ylabel={Visitors},
enlarge x limits=0.15,
]
\addplot coordinates {(Mon,44) (Tue,31) (Wed,38) (Thu,27) (Fri,40)};
\end{axis}
\end{tikzpicture}Các cột bắt đầu từ không. Nếu không có ymin=0, trục thêm một chút khoảng trống dưới mức không, nên hãy đặt nó để các cột đứng trên khung. enlarge x limits thêm khoảng trống ở hai bên, để các cột ngoài cùng không bị khung cắt.
Cột nhóm và nhãn giá trị
Với nhiều chuỗi, các cột của mỗi danh mục đứng cạnh nhau. nodes near coords in mỗi giá trị phía trên cột của nó, và bar width đặt độ rộng cột (mặc định 10pt).
Hai chuỗi, có giá trị trên các cột
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0, ymax=55, bar width=12pt,
symbolic x coords={Erika, Hans, John},
xtick=data, enlarge x limits=0.25,
nodes near coords,
ylabel={Points},
legend style={at={(0.5,-0.12)}, anchor=north, legend columns=2},
]
\addplot coordinates {(Erika,44) (Hans,31) (John,38)};
\addplot coordinates {(Erika,40) (Hans,36) (John,29)};
\legend{Round 1, Round 2}
\end{axis}
\end{tikzpicture}ybar=4pt đặt khoảng cách giữa các cột trong một nhóm (mặc định 2pt).
Cột xếp chồng
ybar stacked đặt các chuỗi chồng lên nhau thay vì cạnh nhau. \addplot thứ hai bắt đầu tại nơi \addplot thứ nhất kết thúc.
Cột xếp chồng theo quý
\begin{tikzpicture}
\begin{axis}[
ybar stacked, ymin=0, bar width=16pt,
symbolic x coords={Q1, Q2, Q3, Q4},
xtick=data, enlarge x limits=0.2,
legend pos=north west, ylabel={Sales},
]
\addplot coordinates {(Q1,12) (Q2,18) (Q3,15) (Q4,22)};
\addplot coordinates {(Q1,6) (Q2,9) (Q3,12) (Q4,10)};
\legend{Online, In store}
\end{axis}
\end{tikzpicture}Cột ngang
xbar vẽ các cột từ trái sang phải. Hãy hoán đổi vai trò của hai trục: các danh mục nằm trong symbolic y coords và ytick=data, và mỗi tọa độ được viết dưới dạng (giá trị, danh mục).
Cột ngang
\begin{tikzpicture}
\begin{axis}[
xbar, xmin=0, xmax=50,
symbolic y coords={Rust, Python, C},
ytick=data, enlarge y limits=0.3,
nodes near coords, xlabel={Projects},
width=8cm, height=5cm,
]
\addplot coordinates {(44,Rust) (31,Python) (12,C)};
\end{axis}
\end{tikzpicture}xbar stacked cũng hoạt động.
Số làm danh mục
Năm và các số khác không cần symbolic x coords: hãy vẽ chúng như số và dùng xtick=data. pgfplots mặc định viết 2024 thành "2,024"; hãy tắt dấu phân cách hàng nghìn trong kiểu nhãn vạch chia.
Các năm trên trục x
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0, xtick=data, enlarge x limits=0.25,
x tick label style={/pgf/number format/1000 sep=},
]
\addplot coordinates {(2023,18) (2024,31) (2025,44)};
\end{axis}
\end{tikzpicture}Tổng quan các tùy chọn
| Tùy chọn | Tác dụng | Trong Scissor LaTeX |
|---|---|---|
ybar, xbar | cột đứng hoặc cột ngang, đặt cạnh nhau | Hoạt động |
ybar=4pt | khoảng cách giữa các cột trong một nhóm | Hoạt động |
ybar stacked, xbar stacked | các cột chồng lên nhau | Hoạt động trên trục tuyến tính |
bar width=12pt | độ rộng của mỗi cột | Hoạt động |
bar shift=.. | dịch một chuỗi sang bên | Hoạt động |
nodes near coords | giá trị phía trên (hoặc bên cạnh) mỗi cột | Hoạt động |
symbolic x coords, symbolic y coords | danh mục có tên | Hoạt động, trừ những tên trông giống số (không có nhãn vạch chia) |
xticklabel style={rotate=45, anchor=east} | tên danh mục viết nghiêng | Hoạt động |
ybar interval | các cột lấp đầy khoảng giữa các giá trị x | Một phần: được vẽ như cột thường tại các giá trị x |
hist (thư viện statistics) | đếm giá trị vào các khoảng | Không hỗ trợ: bị bỏ qua kèm thông báo, các giá trị thô được vẽ thành một đường |
Khác biệt so với một bản cài đặt TeX
Mọi ví dụ trên trang này cũng biên dịch được với pgfplots trong một bản cài đặt TeX. Tài liệu hướng dẫn: ctan.org/pkg/pgfplots.
Xem thêm pgfplots cơ bản, Thanh sai số, Dữ liệu từ CSV và pgfplots.
Hỏi và đáp
Làm thế nào để vẽ biểu đồ cột trong LaTeX?
Nạp pgfplots và viết \begin{axis}[ybar, symbolic x coords={A,B,C}, xtick=data] với một \addplot coordinates {(A,3) (B,5) (C,2)}; cho mỗi chuỗi.
Làm thế nào để hiển thị giá trị trên đầu các cột?
Thêm nodes near coords vào các tùy chọn của trục. Mỗi cột sẽ có giá trị của nó làm nhãn.
Làm thế nào để các cột bắt đầu từ không?
Chúng vốn đã bắt đầu từ không. Đặt ymin=0 trên trục (hoặc xmin=0 với xbar) để bỏ khoảng trống bên dưới chúng.
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.