Przejdź do treści

Kontury, mapy ciepła i mapy kolorów

Użyj \addplot3 w osi z view={0}{90}: surf lub matrix plot dla mapy ciepła, contour filled dla wypełnionych konturów, a dla skali dodaj colorbar i colormap.

Mapa ciepła funkcji

\addplot3 rysuje funkcję x i y. Widziany z góry (view={0}{90}) wykres surf staje się mapą ciepła: każda komórka jest kolorowana według swojej wartości przez mapę kolorów. shader=interp płynnie miesza kolory; shader=flat daje jeden kolor na komórkę.

Gładka mapa ciepła z paskiem kolorów

LaTeXPreambuła: \usepackage{pgfplots}Otwórz w edytorze (otwiera się w nowej karcie)
\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}
Złożone przez Scissor LaTeX: Gładka mapa ciepła z paskiem kolorów

domain ustawia zakres x, y domain zakres y, a samples rozmiar siatki (domyślnie 25, samples y dla innej liczby w kierunku y).

Wypełnione kontury

contour filled dzieli wartości na pasma. number= ustawia liczbę poziomów konturów; levels={...} pozwala wymienić je samodzielnie.

Wypełnione kontury funkcji z dwoma szczytami

LaTeXPreambuła: \usepackage{pgfplots}Otwórz w edytorze (otwiera się w nowej karcie)
\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}
Złożone przez Scissor LaTeX: Wypełnione kontury funkcji z dwoma szczytami

Mapa ciepła z tabeli: matrix plot

Dla danych pomiarowych na siatce matrix plot* rysuje jedną komórkę na każdy wiersz tabeli. mesh/cols mówi, ile kolumn ma siatka, a point meta=explicit z meta= wskazuje kolumnę wartości.

Siatka wartości 3 na 3

LaTeXPreambuła: \usepackage{pgfplots}Otwórz w edytorze (otwiera się w nowej karcie)
\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}

Poziomice

Linie bez wypełnienia wymagają obliczenia poziomów konturów. W pgfplots służą do tego contour gnuplot lub contour lua, które w instalacji TeX potrzebują dodatkowych programów lub LuaLaTeX. Scissor LaTeX sam oblicza linie i je rysuje, a w karcie Problemy przypomina, że kod może nie kompilować się gdzie indziej.

Poziomice z contour gnuplot

LaTeXPreambuła: \usepackage{pgfplots}Otwórz w edytorze (otwiera się w nowej karcie)
\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}

Karta Problemy: contour gnuplot needs gnuplot and shell escape in LaTeX; contour filled or contour prepared compile everywhere

Dla pliku, który kompiluje się wszędzie, użyj contour filled albo contour prepared z wcześniej obliczonymi danymi konturów.

Mapy kolorów i paski kolorów

OpcjaCo robiW Scissor LaTeX
colormap/viridis, /hot, /cool, /jet, /blackwhite, /blueredwbudowane mapy kolorówDziała
colormap name=viridiswybór mapy po nazwieDziała
colormap={name}{rgb255=(..) rgb255=(..)}własna mapaDziała
colorbar, colorbar horizontalskala obok wykresu lub pod nimDziała
colorbar style={..}kreski i etykiety paska kolorówDziała
point meta min, point meta maxustala zakres kolorówDziała
shader=flat, shader=interp, shader=facetedsposób kolorowania komórekDziała

Własna mapa kolorów i poziomy pasek kolorów

LaTeXPreambuła: \usepackage{pgfplots}Otwórz w edytorze (otwiera się w nowej karcie)
\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}
Złożone przez Scissor LaTeX: Własna mapa kolorów i poziomy pasek kolorów

Widoki 3D

Scissor LaTeX rysuje \addplot3 tylko w widoku prosto z góry. Każdy inny view, w tym domyślny widok 3D, pozostawia oś pustą i wyświetla komunikat.

Widok 3D nie jest rysowany

LaTeXPreambuła: \usepackage{pgfplots}Otwórz w edytorze (otwiera się w nowej karcie)
\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}

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

Czym różni się od instalacji TeX

Dokumentacja pgfplots szczegółowo opisuje \addplot3, mapy kolorów i kontury: ctan.org/pkg/pgfplots.

Zobacz też podstawy pgfplots, Osie logarytmiczne i pgfplots.

Pytania i odpowiedzi

Jak zrobić mapę ciepła w LaTeX?

Użyj \addplot3[surf, shader=interp] {f(x,y)}; (lub matrix plot* dla danych z tabeli) w osi z view={0}{90} i dodaj colorbar.

Czy Scissor LaTeX rysuje wykresy powierzchni 3D?

Jeszcze nie. \addplot3 jest rysowany tylko w widoku z góry (view={0}{90}); inne widoki pozostawiają oś pustą, a karta Problemy o tym informuje.

Dlaczego contour gnuplot pokazuje ostrzeżenie?

W instalacji TeX wymaga on gnuplot i shell escape. Scissor LaTeX i tak rysuje kontury, ale ostrzega, że kod może nie kompilować się gdzie indziej. contour filled kompiluje się wszędzie.

Każdy przykład na tej stronie jest składany przez Scissor LaTeX podczas budowania witryny. Ostatnia aktualizacja: 2026-11-07.