Lumaktaw sa nilalaman

Bar charts gamit ang pgfplots

Idagdag ang ybar (patayong bars) o xbar (pahigang bars) sa isang pgfplots axis, pangalanan ang mga category gamit ang symbolic x coords, at ibigay ang bawat series bilang isang \addplot na may coordinates.

Patayong bars na may pangalang category

Ginagawang bars ng ybar sa axis ang bawat series. Inililista ng symbolic x coords ang mga pangalan ng category nang sunod-sunod, at naglalagay ang xtick=data ng isang tick sa ilalim ng bawat bar.

Isang series ng bars

LaTeXPreamble: \usepackage{pgfplots}Buksan sa editor (magbubukas sa bagong tab)
\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}

Nagsisimula sa zero ang bars. Kung walang ymin=0, nagdadagdag ang axis ng kaunting espasyo sa ibaba ng zero, kaya itakda ito para nakatayo ang bars sa frame. Nagdadagdag ang enlarge x limits ng espasyo sa mga gilid, para hindi maputol ng frame ang mga bar sa dulo.

Grouped bars at value labels

Kapag maraming series, magkakatabi ang bars ng bawat category. Ipinapakita ng nodes near coords ang bawat value sa itaas ng bar nito, at itinatakda ng bar width ang lapad (10pt bilang default).

Dalawang series, may values sa bars

LaTeXPreamble: \usepackage{pgfplots}Buksan sa editor (magbubukas sa bagong tab)
\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}
Na-typeset ng Scissor LaTeX: Dalawang series, may values sa bars

Itinatakda ng ybar=4pt ang puwang sa pagitan ng bars ng isang grupo (2pt bilang default).

Stacked bars

Pinapatong ng ybar stacked ang mga series sa isa't isa sa halip na magkatabi. Nagsisimula ang pangalawang \addplot kung saan natapos ang una.

Stacked bars bawat quarter

LaTeXPreamble: \usepackage{pgfplots}Buksan sa editor (magbubukas sa bagong tab)
\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}

Pahigang bars

Iginuguhit ng xbar ang bars mula kaliwa pakanan. Pagpalitin ang papel ng mga axis: napupunta ang mga category sa symbolic y coords at ytick=data, at isinusulat ang bawat coordinate bilang (value, category).

Pahigang bars

LaTeXPreamble: \usepackage{pgfplots}Buksan sa editor (magbubukas sa bagong tab)
\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}

Gumagana rin ang xbar stacked.

Mga numero bilang category

Hindi kailangan ng symbolic x coords ang mga taon at iba pang numero: i-plot sila bilang numero at gamitin ang xtick=data. Bilang default, isinusulat ng pgfplots ang 2024 bilang "2,024"; i-off ang thousands separator sa tick label style.

Mga taon sa x axis

LaTeXPreamble: \usepackage{pgfplots}Buksan sa editor (magbubukas sa bagong tab)
\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}

Mga option sa isang tingin

OptionAno ang ginagawa nitoSa Scissor LaTeX
ybar, xbarpatayo o pahigang bars, magkakatabiGumagana
ybar=4ptang puwang sa pagitan ng bars ng isang grupoGumagana
ybar stacked, xbar stackedbars na nakapatong sa isa't isaGumagana sa linear axes
bar width=12ptang lapad ng bawat barGumagana
bar shift=..ilipat pagilid ang isang seriesGumagana
nodes near coordsang value sa itaas (o sa tabi) ng bawat barGumagana
symbolic x coords, symbolic y coordsmga pangalang categoryGumagana, maliban sa mga pangalang mukhang numero (walang tick labels)
xticklabel style={rotate=45, anchor=east}nakahilig na pangalan ng categoryGumagana
ybar intervalbars na pumupuno sa espasyo sa pagitan ng x valuesBahagya: iginuguhit bilang karaniwang bars sa x values
hist (statistics library)bilangin ang values sa binsHindi suportado: binabalewala nang may mensahe, iginuguhit ang raw values bilang linya

Ang naiiba sa isang TeX installation

Nagko-compile din sa pgfplots sa isang TeX installation ang lahat ng halimbawa sa page na ito. Manual: ctan.org/pkg/pgfplots.

Tingnan din ang mga pangunahing kaalaman sa pgfplots, Error bars, Data mula sa CSV at pgfplots.

Mga tanong at sagot

Paano ako gagawa ng bar chart sa LaTeX?

I-load ang pgfplots at isulat ang \begin{axis}[ybar, symbolic x coords={A,B,C}, xtick=data] na may isang \addplot coordinates {(A,3) (B,5) (C,2)}; bawat series.

Paano ko ipapakita ang values sa itaas ng bars?

Idagdag ang nodes near coords sa axis options. Nakukuha ng bawat bar ang value nito bilang label.

Paano ko pasisimulain sa zero ang bars?

Nagsisimula na sila sa zero. Itakda ang ymin=0 sa axis (o xmin=0 para sa xbar) para alisin ang espasyo sa ilalim nila.

Bawat halimbawa sa page na ito ay tina-typeset ng Scissor LaTeX kapag binubuo ang site. Huling na-update noong 2026-11-07.