Стовпчикові діаграми з pgfplots
Додайте ybar (вертикальні стовпчики) або xbar (горизонтальні) до axis пакета pgfplots, назвіть категорії через symbolic x coords і задайте кожен ряд як \addplot з координатами.
Вертикальні стовпчики з іменованими категоріями
ybar для осі перетворює кожен ряд на стовпчики. symbolic x coords перелічує назви категорій по порядку, а xtick=data ставить по одній поділці під кожним стовпчиком.
Один ряд стовпчиків
\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}Стовпчики починаються з нуля. Без ymin=0 вісь додає трохи місця нижче нуля, тож задайте цей параметр, щоб стовпчики стояли на рамці. enlarge x limits додає місце з боків, щоб рамка не обрізала крайні стовпчики.
Згруповані стовпчики й підписи значень
Коли рядів кілька, стовпчики кожної категорії стоять поруч. nodes near coords виводить кожне значення над його стовпчиком, а bar width задає ширину (за замовчуванням 10pt).
Два ряди зі значеннями на стовпчиках
\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 задає проміжок між стовпчиками однієї групи (за замовчуванням 2pt).
Складені стовпчики
ybar stacked ставить ряди один на одного, а не поруч. Другий \addplot починається там, де закінчується перший.
Складені стовпчики за кварталами
\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}Горизонтальні стовпчики
xbar малює стовпчики зліва направо. Поміняйте ролі осей: категорії йдуть у symbolic y coords і ytick=data, а кожна координата записується як (значення, категорія).
Горизонтальні стовпчики
\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 теж працює.
Числа як категорії
Роки й інші числа не потребують symbolic x coords: будуйте їх як числа й використовуйте xtick=data. За замовчуванням pgfplots пише 2024 як «2,024»; вимкніть роздільник тисяч у стилі підписів поділок.
Роки на осі 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}Параметри коротко
| Параметр | Що робить | У Scissor LaTeX |
|---|---|---|
ybar, xbar | вертикальні чи горизонтальні стовпчики поруч | Працює |
ybar=4pt | проміжок між стовпчиками однієї групи | Працює |
ybar stacked, xbar stacked | стовпчики один на одному | Працює на лінійних осях |
bar width=12pt | ширина кожного стовпчика | Працює |
bar shift=.. | зсуває ряд убік | Працює |
nodes near coords | значення над (або біля) кожним стовпчиком | Працює |
symbolic x coords, symbolic y coords | іменовані категорії | Працює, крім назв, схожих на числа (без підписів поділок) |
xticklabel style={rotate=45, anchor=east} | похилі назви категорій | Працює |
ybar interval | стовпчики, що заповнюють простір між значеннями x | Частково: малюються як звичайні стовпчики на значеннях x |
hist (бібліотека statistics) | розподіляє значення за інтервалами | Не підтримується: ігнорується з повідомленням, сирі значення малюються лінією |
Чим це відрізняється від установленого TeX
Усі приклади на цій сторінці також компілюються з pgfplots в установленому TeX. Посібник: ctan.org/pkg/pgfplots.
Див. також основи pgfplots, планки похибок, дані з CSV і pgfplots.
Запитання й відповіді
Як створити стовпчикову діаграму в LaTeX?
Завантажте pgfplots і напишіть \begin{axis}[ybar, symbolic x coords={A,B,C}, xtick=data] з одним \addplot coordinates {(A,3) (B,5) (C,2)}; на кожен ряд.
Як показати значення над стовпчиками?
Додайте nodes near coords до параметрів осі. Кожен стовпчик отримає своє значення як підпис.
Як зробити, щоб стовпчики починалися з нуля?
Вони вже починаються з нуля. Задайте для осі ymin=0 (або xmin=0 для xbar), щоб прибрати місце під ними.
Кожен приклад на цій сторінці верстається в Scissor LaTeX під час збирання сайту. Оновлено 2026-11-07.