Перейти к содержанию

Основы pgfplots: графики в LaTeX с примерами

Подключите pgfplots, откройте tikzpicture с окружением axis внутри и добавьте каждую серию данных через \addplot, списком координат или формулой.

Самый маленький график

У каждого графика pgfplots три одинаковых слоя: tikzpicture, внутри неё axis и по одной команде \addplot на каждую серию данных. Подключите пакет командой \usepackage{pgfplots} в преамбуле.

Четыре точки, соединённые линией

LaTeXПреамбула: \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

LaTeXПреамбула: \usepackage{pgfplots}Открыть в редакторе (откроется в новой вкладке)
\begin{tikzpicture}
  \begin{axis}
    \addplot[blue, thick, domain=-2:2, samples=60] {x^3 - 2*x};
  \end{axis}
\end{tikzpicture}

Параметры в квадратных скобках после \addplot задают стиль этой серии. Если указать параметры без +, серия рисуется чёрным (или названным вами цветом) без маркеров; \addplot+[...] сохраняет стиль из списка циклов и добавляет к нему ваши параметры.

Подписи осей, заголовок, легенда и сетка

Эти параметры задаются для axis, поэтому действуют на весь график.

Подписи осей, заголовок, легенда и сетка

LaTeXПреамбула: \usepackage{pgfplots}Открыть в редакторе (откроется в новой вкладке)
\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}
Свёрстано в Scissor LaTeX: Подписи осей, заголовок, легенда и сетка

Подписи это текст, поэтому математика в них пишется между $ ... $, как в абзаце. \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 westnorth 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 с подписью

LaTeXПреамбула: \usepackage{pgfplots}Открыть в редакторе (откроется в новой вкладке)
\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.
Свёрстано в Scissor LaTeX: График в figure с подписью

\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.