İçeriğe geç

pgfplots ile sütun grafikleri

Bir pgfplots axis'ine ybar (dikey sütunlar) veya xbar (yatay çubuklar) ekleyin, kategorileri symbolic x coords ile adlandırın ve her seriyi koordinatlarla bir \addplot olarak verin.

Adlandırılmış kategorilerle dikey sütunlar

Eksendeki ybar her seriyi sütunlara dönüştürür. symbolic x coords kategori adlarını sırayla listeler, xtick=data ise her sütunun altına bir işaret çizgisi koyar.

Tek bir sütun serisi

LaTeXÖnsöz: \usepackage{pgfplots}Düzenleyicide aç (yeni sekmede açılır)
\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}

Sütunlar sıfırdan başlar. ymin=0 olmadan eksen sıfırın altına biraz boşluk ekler; sütunların çerçeveye oturması için onu ayarlayın. enlarge x limits yanlara boşluk ekler, böylece dıştaki sütunlar çerçeve tarafından kesilmez.

Gruplu sütunlar ve değer etiketleri

Birkaç seri olduğunda her kategorinin sütunları yan yana durur. nodes near coords her değeri sütununun üstüne yazar, bar width ise genişliği belirler (varsayılan 10pt).

Sütunlar üzerinde değerlerle iki seri

LaTeXÖnsöz: \usepackage{pgfplots}Düzenleyicide aç (yeni sekmede açılır)
\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}
Scissor LaTeX tarafından dizildi: Sütunlar üzerinde değerlerle iki seri

ybar=4pt, bir gruptaki sütunlar arasındaki boşluğu belirler (varsayılan 2pt).

Yığılmış sütunlar

ybar stacked, serileri yan yana değil üst üste koyar. İkinci \addplot, birincinin bittiği yerden başlar.

Çeyrek başına yığılmış sütunlar

LaTeXÖnsöz: \usepackage{pgfplots}Düzenleyicide aç (yeni sekmede açılır)
\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}

Yatay çubuklar

xbar çubukları soldan sağa çizer. Eksenlerin rollerini değiştirin: kategoriler symbolic y coords ve ytick=data içine gider, her koordinat da (değer, kategori) olarak yazılır.

Yatay çubuklar

LaTeXÖnsöz: \usepackage{pgfplots}Düzenleyicide aç (yeni sekmede açılır)
\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 da çalışır.

Kategori olarak sayılar

Yıllar ve diğer sayılar symbolic x coords gerektirmez: onları sayı olarak çizin ve xtick=data kullanın. pgfplots varsayılan olarak 2024'ü "2,024" diye yazar; işaret çizgisi etiket stilinde binlik ayırıcıyı kapatın.

x ekseninde yıllar

LaTeXÖnsöz: \usepackage{pgfplots}Düzenleyicide aç (yeni sekmede açılır)
\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}

Bir bakışta seçenekler

SeçenekNe yaparScissor LaTeX'te
ybar, xbaryan yana dikey veya yatay sütunlarÇalışır
ybar=4ptbir gruptaki sütunlar arasındaki boşlukÇalışır
ybar stacked, xbar stackedüst üste sütunlarDoğrusal eksenlerde çalışır
bar width=12pther sütunun genişliğiÇalışır
bar shift=..bir seriyi yana kaydırırÇalışır
nodes near coordsher sütunun üstünde (veya yanında) değerÇalışır
symbolic x coords, symbolic y coordsadlandırılmış kategorilerÇalışır, sayıya benzeyen adlar hariç (işaret çizgisi etiketi yok)
xticklabel style={rotate=45, anchor=east}eğik kategori adlarıÇalışır
ybar intervalx değerleri arasındaki boşluğu dolduran sütunlarKısmen: x değerlerinde sıradan sütunlar olarak çizilir
hist (statistics kitaplığı)değerleri aralıklara sayarDesteklenmiyor: bir iletiyle yok sayılır, ham değerler bir çizgi olarak çizilir

TeX kurulumundan farkları

Bu sayfadaki tüm örnekler bir TeX kurulumunda pgfplots ile de derlenir. Kılavuz: ctan.org/pkg/pgfplots.

Ayrıca bkz. pgfplots temelleri, Hata çubukları, CSV'den veri ve pgfplots.

Sorular ve yanıtlar

LaTeX'te sütun grafiği nasıl yapılır?

pgfplots'u yükleyin ve her seri için bir \addplot coordinates {(A,3) (B,5) (C,2)}; ile \begin{axis}[ybar, symbolic x coords={A,B,C}, xtick=data] yazın.

Değerler sütunların üstünde nasıl gösterilir?

Eksen seçeneklerine nodes near coords ekleyin. Her sütun, değerini etiket olarak alır.

Sütunların sıfırdan başlaması nasıl sağlanır?

Zaten sıfırdan başlarlar. Altlarındaki boşluğu kaldırmak için eksende ymin=0 (ya da xbar için xmin=0) ayarlayın.

Bu sayfadaki her örnek, site oluşturulurken Scissor LaTeX tarafından dizilir. Son güncelleme: 2026-11-07.