Перейти до вмісту

Лінійні графіки з pgfplots

Додайте по одному \addplot на кожну лінію всередині axis; задайте стиль параметрами на кшталт red, dashed, thick чи mark=square* або дозвольте циклічному списку вибрати стиль за вас.

Кілька ліній на одній осі

Кожен \addplot додає ряд. Без параметрів ряди по черзі беруть стиль із циклічного списку. З \addplot+[...] ви зберігаєте цей стиль і змінюєте одну його частину.

Три ряди зі стандартного циклічного списку

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[xlabel=Week, ylabel=Orders, legend pos=north west]
    \addplot coordinates {(1,12) (2,18) (3,25) (4,31) (5,44)};
    \addplot coordinates {(1,10) (2,14) (3,15) (4,21) (5,24)};
    \addplot+[dashed] coordinates {(1,5) (2,9) (3,8) (4,12) (5,13)};
    \legend{Erika, Hans, John}
  \end{axis}
\end{tikzpicture}
Зверстано в Scissor LaTeX: Три ряди зі стандартного циклічного списку

Стилі ліній і маркери

Параметри після \addplot задають колір, лінію й маркери. Їх можна вільно поєднувати.

ПараметрЗначенняУ Scissor LaTeX
колірred, blue!60!black, color=teal, будь-яка назва чи суміш xcolorПрацює
товщина лініїultra thin, very thin, thin, semithick, thick, very thick, ultra thick, line width=1.5ptПрацює
тип штрихаsolid, dashed, dotted, densely dashed, loosely dotted, dashdotted, dash pattern=on 4pt off 2ptПрацює
mark=*, o, square*, square, triangle*, triangle, diamond*, diamond, x, +, star, pentagon*, asterisk, otimes*, |, -, noneПрацює
mark size=3ptрадіус маркераПрацює
mark options={fill=white}стиль лише маркерівПрацює
mark repeat=2маркер на кожній другій точціПрацює
no marks, only marksлише лінії, лише маркериПрацює

Кольори, типи штрихів і маркери

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[domain=0:4, samples=9, legend pos=outer north east]
    \addplot[blue, thick, mark=*] {x};
    \addplot[red, dashed, mark=square*, mark options={fill=white}] {x^1.5/2};
    \addplot[teal, densely dotted, very thick] {sqrt(x)};
    \addplot[orange, mark=triangle*, mark size=3pt, only marks] {4 - x};
    \legend{linear, power, root, falling}
  \end{axis}
\end{tikzpicture}
Зверстано в Scissor LaTeX: Кольори, типи штрихів і маркери

Маркери завжди малюються суцільними лініями, навіть на пунктирному ряді, як у pgfplots.

Вибір циклічного списку

Циклічний список є послідовністю стилів, яку використовують прості команди \addplot. Виберіть вбудований через cycle list name або напишіть власний через cycle list.

Циклічний список black white і власний список

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[cycle list name=black white, width=6.5cm, height=5cm, title={black white}]
    \addplot coordinates {(0,0) (1,1) (2,4)};
    \addplot coordinates {(0,1) (1,2) (2,2)};
    \addplot coordinates {(0,2) (1,0) (2,1)};
  \end{axis}
\end{tikzpicture}
\begin{tikzpicture}
  \begin{axis}[cycle list={{red, thick}, {blue, dashed}}, width=6.5cm, height=5cm, title={custom}]
    \addplot coordinates {(0,0) (1,1) (2,4)};
    \addplot coordinates {(0,1) (1,2) (2,2)};
  \end{axis}
\end{tikzpicture}
Зверстано в Scissor LaTeX: Циклічний список black white і власний список

Вбудовані назви, які працюють: color (стандартний), exotic, black white, mark list і linestyles. \pgfplotscreateplotcyclelist{name}{...} у преамбулі визначає список, який можна використовувати повторно.

Плавні криві й сходинки

smooth проводить через точки криву замість прямих відрізків; tension (за замовчуванням 0.55) керує її округлістю. const plot малює східчасту функцію, яка тримає кожне значення до наступної точки.

smooth і const plot

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[ymin=0, legend pos=north west]
    \addplot+[smooth] coordinates {(0,1) (1,2.5) (2,1.8) (3,3.2) (4,2.4)};
    \addplot+[const plot] coordinates {(0,0.5) (1,1) (2,1.5) (3,1.2) (4,2)};
    \legend{smooth, const plot}
  \end{axis}
\end{tikzpicture}

Функції в градусах і радіанах

Формули використовують pgfmath: + - * / ^, дужки, sqrt, exp, ln, abs, min, max, sin, cos, tan та інші, а також константи pi і e. Кути задаються в градусах, тож перетворюйте радіани через deg(x).

sin і cos на одному періоді

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[domain=0:2*pi, samples=80, xlabel=$t$,
               xtick={0,1.5708,3.1416,4.7124,6.2832},
               xticklabels={$0$,$\frac{\pi}{2}$,$\pi$,$\frac{3\pi}{2}$,$2\pi$},
               legend pos=south west]
    \addplot[blue, thick] {sin(deg(x))};
    \addplot[red, thick, dashed] {cos(deg(x))};
    \legend{$\sin t$, $\cos t$}
  \end{axis}
\end{tikzpicture}

Параметричні криві

Щоб побудувати криву, задану через x(t) і y(t), напишіть обидві формули в дужках через кому й задайте variable=t.

Крива Ліссажу

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[axis lines=middle, xmin=-1.3, xmax=1.3, ymin=-1.3, ymax=1.3]
    \addplot[purple, thick, domain=0:360, samples=120, variable=t]
      ({cos(t)}, {sin(2*t)});
  \end{axis}
\end{tikzpicture}

Розриви кривої

Функція на кшталт 1/x прямує до нескінченності. restrict y to domain відкидає точки поза діапазоном, а unbounded coords=jump розриває там лінію замість того, щоб з’єднувати дві гілки. Задайте обидва параметри для \addplot.

1/x з розривом у нулі

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\begin{tikzpicture}
  \begin{axis}[ymin=-10, ymax=10, axis lines=middle]
    \addplot[blue, thick, domain=-3:3, samples=200,
             restrict y to domain=-10:10, unbounded coords=jump] {1/x};
  \end{axis}
\end{tikzpicture}

Чим це відрізняється від установленого TeX

Посібник pgfplots на CTAN описує кожен параметр: ctan.org/pkg/pgfplots. Для точок без ліній див. точкові діаграми.

Див. також основи pgfplots, логарифмічні осі, групи графіків і дані з CSV.

Запитання й відповіді

Як побудувати графік функції в LaTeX?

Напишіть \addplot[domain=a:b, samples=n] {formula}; усередині axis, використовуючи x як змінну, наприклад {x^2 - 1}.

Як прибрати маркери з лінії?

Додайте no marks до параметрів \addplot або задайте параметри без + (наприклад, \addplot[blue]), що малює просту лінію.

Чому sin(x) виглядає майже пласким?

pgfplots читає кут у градусах, тож sin(x) на відрізку від 0 до 6 охоплює лише 6 градусів. Пишіть sin(deg(x)).

Кожен приклад на цій сторінці верстається в Scissor LaTeX під час збирання сайту. Оновлено 2026-11-07.