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

Контури, теплові карти й колірні карти

Використайте \addplot3 в осі з view={0}{90}: surf або matrix plot для теплової карти, contour filled для заповнених контурів, і додайте colorbar та colormap для шкали.

Теплова карта функції

\addplot3 будує функцію від x і y. Якщо дивитися згори (view={0}{90}), графік surf стає тепловою картою: кожна клітинка забарвлюється за своїм значенням через колірну карту. shader=interp плавно змішує кольори; shader=flat дає один колір на клітинку.

Плавна теплова карта з колірною шкалою

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\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}
Зверстано в Scissor LaTeX: Плавна теплова карта з колірною шкалою

domain задає діапазон x, y domain діапазон y, а samples розмір сітки (за замовчуванням 25, samples y для іншої кількості по y).

Заповнені контури

contour filled ділить значення на смуги. number= задає кількість рівнів контурів; levels={...} дозволяє перелічити їх самостійно.

Заповнені контури функції з двома піками

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\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}
Зверстано в Scissor LaTeX: Заповнені контури функції з двома піками

Теплова карта з таблиці: matrix plot

Для виміряних даних на сітці matrix plot* малює по одній клітинці на кожен рядок таблиці. mesh/cols вказує, скільки стовпців має сітка, а point meta=explicit разом із meta= називає стовпець значень.

Сітка значень 3 на 3

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\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

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\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як забарвлюються клітинкиПрацює

Власна колірна карта й горизонтальна колірна шкала

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\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: Власна колірна карта й горизонтальна колірна шкала

3D-види

Scissor LaTeX малює \addplot3 лише з виглядом прямо згори. Будь-який інший view, зокрема стандартний 3D-вид, залишає вісь порожньою й показує повідомлення.

3D-вид не малюється

LaTeXПреамбула: \usepackage{pgfplots}Відкрити в редакторі (відкриється в новій вкладці)
\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.