Carta bar dengan pgfplots
Tambah ybar (bar menegak) atau xbar (bar mendatar) pada axis pgfplots, namakan kategori dengan symbolic x coords, dan berikan setiap siri sebagai \addplot dengan koordinat.
Bar menegak dengan kategori bernama
ybar pada paksi menukar setiap siri menjadi bar. symbolic x coords menyenaraikan nama kategori mengikut urutan, dan xtick=data meletakkan satu tanda di bawah setiap bar.
Satu siri bar
\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}Bar bermula pada sifar. Tanpa ymin=0 paksi menambah sedikit ruang di bawah sifar, jadi tetapkannya supaya bar berdiri di atas bingkai. enlarge x limits menambah ruang di sisi, supaya bar paling luar tidak dipotong oleh bingkai.
Bar berkumpulan dan label nilai
Dengan beberapa siri, bar bagi setiap kategori berdiri bersebelahan. nodes near coords mencetak setiap nilai di atas barnya, dan bar width menetapkan lebar (10pt secara lalai).
Dua siri, dengan nilai pada bar
\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 menetapkan jarak antara bar dalam satu kumpulan (2pt secara lalai).
Bar bertindan
ybar stacked meletakkan siri di atas satu sama lain dan bukannya bersebelahan. \addplot kedua bermula di tempat yang pertama berakhir.
Bar bertindan mengikut suku tahun
\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}Bar mendatar
xbar melukis bar dari kiri ke kanan. Tukar peranan paksi: kategori diletakkan dalam symbolic y coords dan ytick=data, dan setiap koordinat ditulis sebagai (nilai, kategori).
Bar mendatar
\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 juga berfungsi.
Nombor sebagai kategori
Tahun dan nombor lain tidak memerlukan symbolic x coords: plotkannya sebagai nombor dan gunakan xtick=data. pgfplots menulis 2024 sebagai "2,024" secara lalai; matikan pemisah ribuan dalam gaya label tanda.
Tahun pada paksi 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}Pilihan secara ringkas
| Pilihan | Fungsinya | Dalam Scissor LaTeX |
|---|---|---|
ybar, xbar | bar menegak atau mendatar, bersebelahan | Berfungsi |
ybar=4pt | jarak antara bar dalam satu kumpulan | Berfungsi |
ybar stacked, xbar stacked | bar di atas satu sama lain | Berfungsi pada paksi linear |
bar width=12pt | lebar setiap bar | Berfungsi |
bar shift=.. | menganjakkan siri ke tepi | Berfungsi |
nodes near coords | nilai di atas (atau di sebelah) setiap bar | Berfungsi |
symbolic x coords, symbolic y coords | kategori bernama | Berfungsi, kecuali nama yang kelihatan seperti nombor (tiada label tanda) |
xticklabel style={rotate=45, anchor=east} | nama kategori yang condong | Berfungsi |
ybar interval | bar yang mengisi ruang antara nilai x | Sebahagian: dilukis sebagai bar biasa pada nilai x |
hist (pustaka statistics) | mengira nilai ke dalam bin | Tidak disokong: diabaikan dengan mesej, nilai mentah dilukis sebagai garis |
Perbezaan dengan pemasangan TeX
Semua contoh di halaman ini juga dikompil dengan pgfplots dalam pemasangan TeX. Manual: ctan.org/pkg/pgfplots.
Lihat juga Asas pgfplots, Bar ralat, Data daripada CSV dan pgfplots.
Soalan dan jawapan
Bagaimanakah cara membuat carta bar dalam LaTeX?
Muatkan pgfplots dan tulis \begin{axis}[ybar, symbolic x coords={A,B,C}, xtick=data] dengan satu \addplot coordinates {(A,3) (B,5) (C,2)}; bagi setiap siri.
Bagaimanakah cara menunjukkan nilai di atas bar?
Tambah nodes near coords pada pilihan paksi. Setiap bar mendapat nilainya sebagai label.
Bagaimanakah cara membuat bar bermula pada sifar?
Bar memang bermula pada sifar. Tetapkan ymin=0 pada paksi (atau xmin=0 untuk xbar) untuk membuang ruang di bawahnya.
Setiap contoh di halaman ini disusun atur oleh Scissor LaTeX semasa laman dibina. Kali terakhir dikemas kini 2026-11-07.