Langsung ke konten

Diagram batang dengan pgfplots

Tambahkan ybar (batang tegak) atau xbar (batang mendatar) ke axis pgfplots, beri nama kategori dengan symbolic x coords, dan berikan setiap seri sebagai \addplot dengan koordinat.

Batang tegak dengan kategori bernama

ybar pada sumbu mengubah setiap seri menjadi batang. symbolic x coords mencantumkan nama kategori secara berurutan, dan xtick=data menaruh satu tanda skala di bawah setiap batang.

Satu seri batang

LaTeXPreambul: \usepackage{pgfplots}Buka di editor (terbuka di tab baru)
\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}

Batang dimulai dari nol. Tanpa ymin=0, sumbu menambahkan sedikit ruang di bawah nol, jadi atur opsi itu agar batang berdiri di atas bingkai. enlarge x limits menambahkan ruang di sisi kiri dan kanan, sehingga batang terluar tidak terpotong bingkai.

Batang berkelompok dan label nilai

Dengan beberapa seri, batang-batang setiap kategori berdiri berdampingan. nodes near coords mencetak setiap nilai di atas batangnya, dan bar width mengatur lebarnya (bawaan 10pt).

Dua seri, dengan nilai di atas batang

LaTeXPreambul: \usepackage{pgfplots}Buka di editor (terbuka di tab baru)
\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}
Ditata oleh Scissor LaTeX: Dua seri, dengan nilai di atas batang

ybar=4pt mengatur jarak antarbatang dalam satu kelompok (bawaan 2pt).

Batang bertumpuk

ybar stacked menumpuk seri-seri di atas satu sama lain, bukan berdampingan. \addplot kedua dimulai di tempat yang pertama berakhir.

Batang bertumpuk per kuartal

LaTeXPreambul: \usepackage{pgfplots}Buka di editor (terbuka di tab baru)
\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}

Batang mendatar

xbar menggambar batang dari kiri ke kanan. Tukar peran kedua sumbu: kategori masuk ke symbolic y coords dan ytick=data, dan setiap koordinat ditulis sebagai (nilai, kategori).

Batang mendatar

LaTeXPreambul: \usepackage{pgfplots}Buka di editor (terbuka di tab baru)
\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.

Angka sebagai kategori

Tahun dan angka lain tidak memerlukan symbolic x coords: plot sebagai angka dan pakai xtick=data. pgfplots secara bawaan menulis 2024 sebagai "2,024"; matikan pemisah ribuan dalam gaya label tanda skala.

Tahun pada sumbu x

LaTeXPreambul: \usepackage{pgfplots}Buka di editor (terbuka di tab baru)
\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}

Ringkasan opsi

OpsiFungsinyaDi Scissor LaTeX
ybar, xbarbatang tegak atau mendatar, berdampinganBerfungsi
ybar=4ptjarak antarbatang dalam satu kelompokBerfungsi
ybar stacked, xbar stackedbatang bertumpukBerfungsi pada sumbu linear
bar width=12ptlebar setiap batangBerfungsi
bar shift=..menggeser seri ke sampingBerfungsi
nodes near coordsnilai di atas (atau di samping) setiap batangBerfungsi
symbolic x coords, symbolic y coordskategori bernamaBerfungsi, kecuali nama yang tampak seperti angka (tanpa label tanda skala)
xticklabel style={rotate=45, anchor=east}nama kategori miringBerfungsi
ybar intervalbatang yang mengisi ruang antarnilai xSebagian: digambar sebagai batang biasa pada nilai x
hist (pustaka statistics)menghitung nilai ke dalam kelasTidak didukung: diabaikan dengan pesan, nilai mentah digambar sebagai garis

Apa yang berbeda dari instalasi TeX

Semua contoh di halaman ini juga bisa dikompilasi dengan pgfplots di instalasi TeX. Manual: ctan.org/pkg/pgfplots.

Lihat juga Dasar-dasar pgfplots, Batang galat, Data dari CSV, dan pgfplots.

Tanya jawab

Bagaimana cara membuat diagram batang di LaTeX?

Muat pgfplots lalu tulis \begin{axis}[ybar, symbolic x coords={A,B,C}, xtick=data] dengan satu \addplot coordinates {(A,3) (B,5) (C,2)}; per seri.

Bagaimana cara menampilkan nilai di atas batang?

Tambahkan nodes near coords ke opsi sumbu. Setiap batang mendapat nilainya sebagai label.

Bagaimana agar batang dimulai dari nol?

Batang sudah dimulai dari nol. Atur ymin=0 pada sumbu (atau xmin=0 untuk xbar) untuk menghapus ruang di bawahnya.

Setiap contoh di halaman ini ditata oleh Scissor LaTeX saat situs dibuat. Terakhir diperbarui 2026-11-07.