Линейные графики с pgfplots
Добавьте по одному \addplot на каждую линию внутри axis; задайте стиль параметрами вроде red, dashed, thick или mark=square* или предоставьте выбор стиля списку циклов.
Несколько линий на одной оси
Каждый \addplot добавляет серию. Без параметров серии по очереди берут стиль из списка циклов. С \addplot+[...] этот стиль сохраняется, а вы меняете одну его часть.
Три серии из стандартного списка циклов
\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}Стили линий и маркеры
Параметры после \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 | только линии, только маркеры | Работает |
Цвета, штриховка и маркеры
\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}Маркеры всегда рисуются сплошными линиями, даже на штриховой серии, как в pgfplots.
Выбор списка циклов
Список циклов это последовательность стилей, которые используют простые команды \addplot. Выберите встроенный через cycle list name или напишите свой через cycle list.
Список циклов black white и собственный список
\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}Работают встроенные имена color (по умолчанию), exotic, black white, mark list и linestyles. \pgfplotscreateplotcyclelist{name}{...} в преамбуле определяет список, который можно использовать повторно.
Плавные кривые и ступеньки
smooth проводит через точки кривую вместо прямых отрезков; tension (по умолчанию 0.55) управляет её округлостью. const plot рисует ступенчатую функцию, которая держит каждое значение до следующей точки.
smooth и const plot
\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 на одном периоде
\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.
Фигура Лиссажу
\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 с разрывом в нуле
\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.