Pular para o conteúdo

Contornos, mapas de calor e mapas de cores

Use \addplot3 num axis com view={0}{90}: surf ou matrix plot para um mapa de calor, contour filled para contornos preenchidos, e acrescente colorbar e um colormap para a escala.

Um mapa de calor de uma função

\addplot3 plota uma função de x e y. Visto de cima (view={0}{90}), um gráfico surf vira um mapa de calor: cada célula é colorida pelo seu valor por meio do mapa de cores. shader=interp mistura as cores suavemente; shader=flat dá uma cor por célula.

Um mapa de calor suave com barra de cores

LaTeXPreâmbulo: \usepackage{pgfplots}Abrir no editor (abre em uma nova aba)
\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}
Renderizado pelo Scissor LaTeX: Um mapa de calor suave com barra de cores

domain define o intervalo de x, y domain, o intervalo de y, e samples, o tamanho da grade (25 por padrão; samples y para uma contagem diferente em y).

Contornos preenchidos

contour filled divide os valores em faixas. number= define quantos níveis de contorno existem; levels={...} permite listá-los você mesmo.

Contornos preenchidos de uma função com dois picos

LaTeXPreâmbulo: \usepackage{pgfplots}Abrir no editor (abre em uma nova aba)
\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}
Renderizado pelo Scissor LaTeX: Contornos preenchidos de uma função com dois picos

Mapa de calor a partir de uma tabela: matrix plot

Para dados medidos numa grade, matrix plot* desenha uma célula por linha da tabela. mesh/cols diz quantas colunas a grade tem, e point meta=explicit com meta= indica a coluna de valores.

Uma grade de valores 3 por 3

LaTeXPreâmbulo: \usepackage{pgfplots}Abrir no editor (abre em uma nova aba)
\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}

Linhas de contorno

Linhas sem preenchimento exigem que os níveis de contorno sejam calculados para você. No pgfplots, isso é contour gnuplot ou contour lua, que precisam de programas extras ou do LuaLaTeX numa instalação do TeX. O Scissor LaTeX calcula as linhas sozinho e as desenha, e avisa na aba Problemas que o código pode não compilar em outros lugares.

Linhas de contorno com contour gnuplot

LaTeXPreâmbulo: \usepackage{pgfplots}Abrir no editor (abre em uma nova aba)
\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}

Aba Problemas: contour gnuplot needs gnuplot and shell escape in LaTeX; contour filled or contour prepared compile everywhere

Para um arquivo que compile em qualquer lugar, use contour filled, ou contour prepared com dados de contorno pré-calculados.

Mapas de cores e barras de cores

OpçãoO que fazNo Scissor LaTeX
colormap/viridis, /hot, /cool, /jet, /blackwhite, /blueredmapas de cores prontosFunciona
colormap name=viridisescolhe um mapa pelo nomeFunciona
colormap={name}{rgb255=(..) rgb255=(..)}o seu próprio mapaFunciona
colorbar, colorbar horizontaluma escala ao lado ou embaixo do gráficoFunciona
colorbar style={..}marcações e rótulos da barra de coresFunciona
point meta min, point meta maxfixam o intervalo de coresFunciona
shader=flat, shader=interp, shader=facetedcomo as células são coloridasFunciona

Um mapa de cores personalizado e uma barra de cores horizontal

LaTeXPreâmbulo: \usepackage{pgfplots}Abrir no editor (abre em uma nova aba)
\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}
Renderizado pelo Scissor LaTeX: Um mapa de cores personalizado e uma barra de cores horizontal

Vistas 3D

O Scissor LaTeX desenha \addplot3 apenas visto diretamente de cima. Qualquer outra view, inclusive a vista 3D padrão, deixa os eixos vazios e mostra uma mensagem.

Uma vista 3D não é desenhada

LaTeXPreâmbulo: \usepackage{pgfplots}Abrir no editor (abre em uma nova aba)
\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}

Aba Problemas: 3D plots are drawn only when seen from above (view={0}{90}) for now

O que muda em relação a uma instalação do TeX

O manual do pgfplots trata de \addplot3, mapas de cores e contornos em detalhe: ctan.org/pkg/pgfplots.

Veja também Noções básicas de pgfplots, Eixos logarítmicos e pgfplots.

Perguntas e respostas

Como faço um mapa de calor em LaTeX?

Use \addplot3[surf, shader=interp] {f(x,y)}; (ou matrix plot* para dados de tabela) num axis com view={0}{90}, e acrescente colorbar.

O Scissor LaTeX desenha gráficos de superfície 3D?

Ainda não. \addplot3 só é desenhado visto de cima (view={0}{90}); outras vistas deixam os eixos vazios, e a aba Problemas avisa.

Por que o contour gnuplot mostra um aviso?

Numa instalação do TeX ele precisa do gnuplot e de shell escape. O Scissor LaTeX desenha os contornos mesmo assim, mas avisa que o código pode não compilar em outros lugares. contour filled compila em qualquer lugar.

Cada exemplo desta página é composto pelo Scissor LaTeX quando o site é gerado. Última atualização: 2026-11-07.