Контурные графики, тепловые карты и цветовые карты
Используйте \addplot3 в оси с view={0}{90}: surf или matrix plot для тепловой карты, contour filled для закрашенных контуров, а для шкалы добавьте colorbar и colormap.
Тепловая карта функции
\addplot3 строит функцию от x и y. При взгляде сверху (view={0}{90}) график surf становится тепловой картой: каждая ячейка окрашена по своему значению через цветовую карту. shader=interp плавно смешивает цвета; shader=flat даёт один цвет на ячейку.
Плавная тепловая карта с цветовой шкалой
\begin{tikzpicture}
\begin{axis}[view={0}{90}, colorbar, colormap/viridis,
xlabel=$x$, ylabel=$y$, enlargelimits=false]
\addplot3[surf, shader=interp, domain=-2:2, y domain=-2:2, samples=30]
{exp(-x^2 - y^2) * (1 + x)};
\end{axis}
\end{tikzpicture}domain задаёт диапазон x, y domain диапазон y, а samples размер сетки (по умолчанию 25; samples y для другого числа точек по y).
Закрашенные контуры
contour filled делит значения на полосы. number= задаёт число уровней; levels={...} позволяет перечислить их самостоятельно.
Закрашенные контуры функции с двумя пиками
\begin{tikzpicture}
\begin{axis}[view={0}{90}, colorbar, colormap/hot, enlargelimits=false]
\addplot3[contour filled={number=8}, domain=-3:3, y domain=-3:3, samples=40]
{exp(-(x-1)^2 - y^2) + 0.7*exp(-(x+1.2)^2 - (y-1)^2)};
\end{axis}
\end{tikzpicture}Тепловая карта из таблицы: matrix plot
Для измеренных данных на сетке matrix plot* рисует по одной ячейке на строку таблицы. mesh/cols говорит, сколько столбцов у сетки, а point meta=explicit вместе с meta= называет столбец значений.
Сетка значений 3 на 3
\begin{tikzpicture}
\begin{axis}[colorbar, colormap/bluered, enlargelimits=false,
xtick=data, ytick=data, width=6.5cm, height=6cm]
\addplot[matrix plot*, mesh/cols=3, point meta=explicit]
table[meta=v] {
x y v
0 0 1
1 0 4
2 0 2
0 1 3
1 1 9
2 1 5
0 2 2
1 2 6
2 2 44
};
\end{axis}
\end{tikzpicture}Линии уровня
Для линий без заливки нужно, чтобы уровни были вычислены за вас. В pgfplots это contour gnuplot или contour lua, которым в установленном TeX нужны дополнительные программы или LuaLaTeX. Scissor LaTeX сам вычисляет и рисует линии, а во вкладке «Проблемы» напоминает, что код может не скомпилироваться в другом месте.
Линии уровня с contour gnuplot
\begin{tikzpicture}
\begin{axis}[view={0}{90}, xlabel=$x$, ylabel=$y$]
\addplot3[contour gnuplot={levels={0.2, 0.5, 0.8}},
domain=-2:2, y domain=-2:2, samples=30]
{exp(-x^2 - y^2)};
\end{axis}
\end{tikzpicture}Вкладка «Проблемы»: contour gnuplot needs gnuplot and shell escape in LaTeX; contour filled or contour prepared compile everywhere
Для файла, который компилируется везде, используйте contour filled или contour prepared с заранее вычисленными данными контуров.
Цветовые карты и цветовые шкалы
| Параметр | Что делает | В Scissor LaTeX |
|---|---|---|
colormap/viridis, /hot, /cool, /jet, /blackwhite, /bluered | встроенные цветовые карты | Работает |
colormap name=viridis | выбор карты по имени | Работает |
colormap={name}{rgb255=(..) rgb255=(..)} | собственная карта | Работает |
colorbar, colorbar horizontal | шкала рядом с графиком или под ним | Работает |
colorbar style={..} | деления и подписи цветовой шкалы | Работает |
point meta min, point meta max | фиксируют цветовой диапазон | Работает |
shader=flat, shader=interp, shader=faceted | как окрашиваются ячейки | Работает |
Собственная цветовая карта и горизонтальная шкала
\begin{tikzpicture}
\begin{axis}[view={0}{90}, enlargelimits=false,
colormap={sea}{rgb255=(255,255,255) rgb255=(120,180,220) rgb255=(10,40,100)},
colorbar horizontal, width=7cm, height=6cm]
\addplot3[surf, shader=flat, domain=0:2, y domain=0:2, samples=12] {x*y};
\end{axis}
\end{tikzpicture}Трёхмерные виды
Scissor LaTeX рисует \addplot3 только при взгляде строго сверху. Любой другой view, включая трёхмерный вид по умолчанию, оставляет ось пустой и выводит сообщение.
Трёхмерный вид не рисуется
\begin{tikzpicture}
\begin{axis}[width=6cm, height=5cm]
\addplot3[surf, domain=-2:2, y domain=-2:2] {x^2 - y^2};
\end{axis}
\end{tikzpicture}Вкладка «Проблемы»: 3D plots are drawn only when seen from above (view={0}{90}) for now
Чем это отличается от установленного TeX
Руководство pgfplots подробно описывает \addplot3, цветовые карты и контуры: ctan.org/pkg/pgfplots.
См. также основы pgfplots, логарифмические оси и pgfplots.
Вопросы и ответы
Как сделать тепловую карту в LaTeX?
Используйте \addplot3[surf, shader=interp] {f(x,y)}; (или matrix plot* для данных из таблицы) в оси с view={0}{90} и добавьте colorbar.
Рисует ли Scissor LaTeX трёхмерные поверхности?
Пока нет. \addplot3 рисуется только при взгляде сверху (view={0}{90}); другие виды оставляют ось пустой, и вкладка «Проблемы» об этом сообщает.
Почему contour gnuplot выдаёт предупреждение?
В установленном TeX ему нужны gnuplot и shell escape. Scissor LaTeX всё равно рисует контуры, но предупреждает, что код может не скомпилироваться в другом месте. contour filled компилируется везде.
Каждый пример на этой странице верстается в Scissor LaTeX при сборке сайта. Обновлено 2026-11-07.