본문으로 건너뛰기

등고선, 히트맵, 컬러맵

view={0}{90}인 축에서 \addplot3를 쓰세요. 히트맵에는 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, y 방향을 다르게 하려면 samples 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를 바로 위에서 내려다본 모습으로만 그립니다. 기본 3D 보기를 포함해 다른 view를 쓰면 축이 빈 채로 남고 메시지가 나옵니다.

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에서 히트맵은 어떻게 만드나요?

view={0}{90}인 축에서 \addplot3[surf, shader=interp] {f(x,y)};(표 데이터라면 matrix plot*)를 쓰고 colorbar를 넣으세요.

Scissor LaTeX는 3D 곡면 그래프를 그리나요?

아직은 아닙니다. \addplot3는 위에서 내려다본 경우(view={0}{90})에만 그려지며, 다른 보기에서는 축이 빈 채로 남고 문제 탭에 그렇게 표시됩니다.

contour gnuplot을 쓰면 왜 경고가 나오나요?

TeX 설치 환경에서는 gnuplot과 shell escape가 필요하기 때문입니다. Scissor LaTeX는 그래도 등고선을 그리지만, 이 코드가 다른 곳에서는 컴파일되지 않을 수 있다고 경고합니다. contour filled는 어디서나 컴파일됩니다.

이 페이지의 모든 예제는 사이트를 빌드할 때 Scissor LaTeX로 조판됩니다. 마지막 업데이트: 2026-11-07