pgfplots 기초: 예제로 배우는 LaTeX 그래프
pgfplots를 불러오고, tikzpicture 안에 axis를 연 다음, 데이터 계열마다 \addplot을 좌표 목록이나 수식으로 추가하세요.
가장 작은 그래프
모든 pgfplots 그래프는 같은 세 층으로 이루어집니다. tikzpicture, 그 안의 axis, 데이터 계열마다 하나씩 쓰는 \addplot입니다. 프리앰블에서 \usepackage{pgfplots}로 패키지를 불러오세요.
선으로 이은 네 점
\begin{tikzpicture}
\begin{axis}
\addplot coordinates {(0,1) (1,3) (2,2) (3,4)};
\end{axis}
\end{tikzpicture}축은 데이터를 보고 범위와 눈금을 스스로 정합니다. 옵션 없는 \addplot은 기본 순환 목록(cycle list)에서 색과 마커를 가져옵니다. 첫 번째 계열은 동그란 마커의 파란색, 두 번째는 사각형 마커의 빨간색, 이런 식입니다.
수식으로 그리기
좌표 대신 중괄호 안에 수식을 \addplot에 넘기세요. domain은 x의 범위를, samples는 점의 개수를 정합니다. 둘 다 없으면 pgfplots는 -5에서 5까지의 범위와 25개의 표본을 씁니다.
domain과 samples를 지정한 함수
\begin{tikzpicture}
\begin{axis}
\addplot[blue, thick, domain=-2:2, samples=60] {x^3 - 2*x};
\end{axis}
\end{tikzpicture}\addplot 뒤 대괄호 안의 옵션은 그 계열의 스타일을 정합니다. + 없이 옵션을 주면 계열은 마커 없이 검은색(또는 지정한 색)으로 그려지고, \addplot+[...]는 순환 목록의 스타일을 유지한 채 옵션을 덧붙입니다.
레이블, 제목, 범례, 격자
이 옵션들은 axis에 붙으므로 그래프 전체에 적용됩니다.
축 레이블, 제목, 범례, 격자
\begin{tikzpicture}
\begin{axis}[
title={Cooling of a cup of tea},
xlabel={Time (min)},
ylabel={Temperature ($^\circ$C)},
grid=major,
legend pos=north east,
]
\addplot coordinates {(0,80) (5,64) (10,53) (15,44) (20,38)};
\addlegendentry{Measured}
\addplot[red, domain=0:20, samples=40] {22 + 58*exp(-0.08*x)};
\addlegendentry{Model}
\end{axis}
\end{tikzpicture}레이블은 텍스트이므로 수식은 문단에서처럼 $ ... $ 사이에 씁니다. 각 \addplot 뒤의 \addlegendentry는 그 계열에 이름을 붙입니다. 끝에 \legend{Measured, Model}로 모든 이름을 한꺼번에 적을 수도 있습니다.
자주 쓰는 축 옵션
| 옵션 | 하는 일 | Scissor LaTeX에서 |
|---|---|---|
xlabel, ylabel, title | 축을 따라 붙는 텍스트와 그래프 위의 제목 | 작동함 |
xmin, xmax, ymin, ymax | 보이는 범위 고정 | 작동함 |
width, height | 그림 전체 크기, 예: width=\linewidth | 작동함 |
grid=major, grid=both | 주 눈금(과 보조 눈금)의 격자선 | 작동함 |
xtick={0,1,2}, xticklabels={a,b,c} | 눈금과 그 레이블 지정 | 작동함 |
legend pos=north west | north west, north east, south west, south east, outer north east | 작동함 |
axis lines=left | 상자 대신 화살표가 달린 L자 모양 축 | 작동함(middle, center, none도 가능) |
enlargelimits=false | 데이터 주변에 여백을 두지 않음 | 작동함 |
axis equal | 두 축에 같은 축척 | 아직 지원하지 않음: 문제 탭에 메시지를 남기고 무시 |
pgfplots 설명서의 다른 옵션도 대부분 작동합니다. 스타일과 마커는 선 그래프 페이지에 정리되어 있습니다. 렌더러가 모르는 옵션은 무시되며, 문제 탭에 그 이름이 나옵니다.
크기와 배치
그래프는 기본적으로 pgfplots 기본값인 약 240 × 207포인트 크기입니다. 바꾸려면 축에 width와 height를 지정하세요. 그래프에 캡션과 번호를 붙이려면 이미지처럼 tikzpicture를 figure 안에 넣으세요.
캡션이 있는 figure 속 그래프
\begin{figure}[h]
\centering
\begin{tikzpicture}
\begin{axis}[width=7cm, height=4.5cm, xlabel=$x$, ylabel=$x^2$]
\addplot[domain=0:2, samples=30] {x^2};
\end{axis}
\end{tikzpicture}
\caption{A parabola on $[0, 2]$.}
\label{fig:parabola}
\end{figure}
Figure~\ref{fig:parabola} shows the parabola.tikzpicture 하나를 \resizebox{0.5\linewidth}{!}{...}로 감싸는 방법도 작동합니다. 그림이 그 너비에 맞게 확대·축소됩니다.
TeX 설치 환경과 다른 점
이 페이지의 모든 내용은 pgfplots가 있는 TeX 설치 환경에서도 컴파일됩니다. 전체 설명서는 CTAN에 있습니다: ctan.org/pkg/pgfplots.
질문과 답변
pgfplots를 설치해야 하나요?
아니요. 평소처럼 \usepackage{pgfplots}라고 쓰세요. Scissor LaTeX가 패키지를 알아보고 브라우저에서 그래프를 직접 그립니다.
함수 그래프가 왜 각져 보이나요?
pgfplots는 기본적으로 점 25개를 잇습니다. 더 매끄러운 곡선을 원하면 \addplot이나 축에 samples=100(또는 그 이상)을 넣거나, smooth를 넣어 점들을 지나는 곡선을 그리세요.
tikzpicture 없이 pgfplots를 쓸 수 있나요?
아니요. LaTeX에서 axis 환경은 항상 tikzpicture 안에 있어야 합니다. Scissor LaTeX도 같은 규칙을 따르므로, 코드는 다른 곳에서도 컴파일됩니다.
이 페이지의 모든 예제는 사이트를 빌드할 때 Scissor LaTeX로 조판됩니다. 마지막 업데이트: 2026-11-07