Основы pgfplots: графики в LaTeX с примерами
Подключите pgfplots, откройте tikzpicture с окружением axis внутри и добавьте каждую серию данных через \addplot, списком координат или формулой.
Самый маленький график
У каждого графика pgfplots три одинаковых слоя: tikzpicture, внутри неё axis и по одной команде \addplot на каждую серию данных. Подключите пакет командой \usepackage{pgfplots} в преамбуле.
Четыре точки, соединённые линией
\begin{tikzpicture}
\begin{axis}
\addplot coordinates {(0,1) (1,3) (2,2) (3,4)};
\end{axis}
\end{tikzpicture}Ось сама подбирает диапазон и деления по данным. Простой \addplot берёт цвет и маркер из стандартного списка циклов: синий с круглыми маркерами для первой серии, красный с квадратами для второй и так далее.
График формулы
Вместо координат передайте \addplot формулу в фигурных скобках. domain задаёт диапазон x, а samples число точек. Без них pgfplots берёт диапазон от -5 до 5 и 25 точек.
Функция с domain и samples
\begin{tikzpicture}
\begin{axis}
\addplot[blue, thick, domain=-2:2, samples=60] {x^3 - 2*x};
\end{axis}
\end{tikzpicture}Параметры в квадратных скобках после \addplot задают стиль этой серии. Если указать параметры без +, серия рисуется чёрным (или названным вами цветом) без маркеров; \addplot+[...] сохраняет стиль из списка циклов и добавляет к нему ваши параметры.
Подписи осей, заголовок, легенда и сетка
Эти параметры задаются для axis, поэтому действуют на весь график.
Подписи осей, заголовок, легенда и сетка
\begin{tikzpicture}
\begin{axis}[
title={Cooling of a cup of tea},
xlabel={Time (min)},
ylabel={Temperature ($^\circ$C)},
grid=major,
legend pos=north east,
]
\addplot coordinates {(0,80) (5,64) (10,53) (15,44) (20,38)};
\addlegendentry{Measured}
\addplot[red, domain=0:20, samples=40] {22 + 58*exp(-0.08*x)};
\addlegendentry{Model}
\end{axis}
\end{tikzpicture}Подписи это текст, поэтому математика в них пишется между $ ... $, как в абзаце. \addlegendentry после каждого \addplot даёт имя этой серии; можно также перечислить все имена в конце через \legend{Measured, Model}.
Частые параметры оси
| Параметр | Что делает | В Scissor LaTeX |
|---|---|---|
xlabel, ylabel, title | текст вдоль осей и над графиком | Работает |
xmin, xmax, ymin, ymax | фиксируют видимый диапазон | Работает |
width, height | размер всего рисунка, например width=\linewidth | Работает |
grid=major, grid=both | линии сетки на основных (и вспомогательных) делениях | Работает |
xtick={0,1,2}, xticklabels={a,b,c} | выбор делений и их подписей | Работает |
legend pos=north west | north west, north east, south west, south east, outer north east | Работает |
axis lines=left | пара осей буквой L со стрелками вместо рамки | Работает (также middle, center, none) |
enlargelimits=false | без дополнительного места вокруг данных | Работает |
axis equal | одинаковый масштаб по обеим осям | Пока не поддерживается: игнорируется с сообщением во вкладке «Проблемы» |
Большинство других параметров из руководства pgfplots тоже работают; на странице линейных графиков перечислены стили и маркеры. Параметр, который отрисовщик не знает, игнорируется, а вкладка «Проблемы» называет его.
Размер и размещение
По умолчанию график имеет размер примерно 240 на 207 пунктов, как в pgfplots. Чтобы изменить его, задайте width и height для оси. Чтобы дать графику подпись и номер, поместите tikzpicture в окружение figure, как изображение.
График в figure с подписью
\begin{figure}[h]
\centering
\begin{tikzpicture}
\begin{axis}[width=7cm, height=4.5cm, xlabel=$x$, ylabel=$x^2$]
\addplot[domain=0:2, samples=30] {x^2};
\end{axis}
\end{tikzpicture}
\caption{A parabola on $[0, 2]$.}
\label{fig:parabola}
\end{figure}
Figure~\ref{fig:parabola} shows the parabola.\resizebox{0.5\linewidth}{!}{...} вокруг одной tikzpicture тоже работает: рисунок масштабируется до этой ширины.
Чем это отличается от установленного TeX
Всё на этой странице компилируется и в установленном TeX с pgfplots. Полное руководство есть на CTAN: ctan.org/pkg/pgfplots.
Вопросы и ответы
Нужно ли устанавливать pgfplots?
Нет. Пишите \usepackage{pgfplots} как обычно. Scissor LaTeX узнаёт пакет и рисует графики сам, в браузере.
Почему график моей функции получается ломаным?
По умолчанию pgfplots соединяет 25 точек. Добавьте samples=100 (или больше) к \addplot или к оси, чтобы кривая стала глаже, или добавьте smooth, чтобы провести через точки плавную кривую.
Можно ли использовать pgfplots без tikzpicture?
Нет, в LaTeX окружение axis всегда находится внутри tikzpicture. Scissor LaTeX следует тому же правилу, поэтому ваш код компилируется и в других местах.
Каждый пример на этой странице верстается в Scissor LaTeX при сборке сайта. Обновлено 2026-11-07.