본문으로 건너뛰기
EasyLaTeXDocs

TikZ, PGFPlots, 기술 도식

TikZ는 도식, 흐름도, 기하 그림을 만들고, PGFPlots는 TikZ 위에 좌표축과 데이터 그래프를 제공합니다. 둘 다 문서 글꼴 및 표기와 어울리는 확대 가능한 벡터 그래픽을 만듭니다.

EasyLaTeX에서는 XeLaTeX와 article + kotex를 사용합니다. 도식에는 tikz, 데이터 그래프에는 pgfplots를 불러오세요. 복잡한 그림은 컴파일 시간을 늘립니다.

코드로 그리면 좋은 경우

필요적합한 방법
사진, 스캔, 화면 캡처기존 이미지 삽입
흐름도, 구조도, 기하 그림TikZ
함수, 측정값, 오차 막대PGFPlots
복잡한 그림이나 전문 도구 파일도구에서 PDF로 내보내기. SVG는 PDF나 적절한 래스터 이미지로 변환

코드 그림은 재현성, 버전 관리, 글꼴 일관성에 유리합니다. 전문 도구가 더 적합하면 안정적인 형식으로 내보내 삽입하세요.

최소 TikZ 도식

서문에서 불러옵니다.

LaTeX
\usepackage{tikz}

축과 선분을 그립니다.

LaTeX
\begin{tikzpicture}  \draw[->] (0,0) -- (4,0) node[right] {$x$};  \draw[->] (0,0) -- (0,3) node[above] {$y$};  \draw[blue,thick] (0,0) -- (3,2);\end{tikzpicture}

일반 직교 좌표의 기본 단위는 1cm입니다. \draw는 경로, 대괄호는 스타일, node는 텍스트를 지정합니다.

노드와 화살표

스타일을 정의해 재사용합니다.

LaTeX
\begin{tikzpicture}[  box/.style={draw, rounded corners, minimum width=2.5cm, minimum height=8mm},  arrow/.style={->, thick}]  \node[box] (input) {입력 데이터};  \node[box, right=1.5cm of input] (process) {처리};  \node[box, right=1.5cm of process] (output) {출력};  \draw[arrow] (input) -- (process);  \draw[arrow] (process) -- (output);\end{tikzpicture}

right=... of ... 문법에는 다음 라이브러리가 필요합니다.

LaTeX
\usetikzlibrary{positioning}

공통 스타일로 일관성을 유지하세요. 긴 라벨은 줄이거나 text width를 지정해 노드가 겹치지 않게 합니다.

최소 PGFPlots 그래프

패키지와 호환성 수준을 설정합니다.

LaTeX
\usepackage{pgfplots}\pgfplotsset{compat=1.18}

코드 안의 좌표를 그립니다.

LaTeX
\begin{tikzpicture}  \begin{axis}[    xlabel={시간 (s)},    ylabel={속도 (m/s)},    grid=major  ]    \addplot coordinates {(0,0) (1,1) (2,4) (3,9)};  \end{axis}\end{tikzpicture}

axis는 축, 눈금, 라벨, 격자를 관리하고 \addplot은 계열을 제공합니다. 물리량과 단위를 명확히 쓰고 계열을 색상만으로 구별하지 마세요.

파일에서 데이터 읽기

프로젝트에 data/velocity.csv를 만듭니다.

csv
time,velocity0,01,12,43,9

열 이름으로 읽습니다.

LaTeX
\addplot table [x=time, y=velocity, col sep=comma] {data/velocity.csv};

데이터와 그림 코드를 분리하면 수정과 검토가 쉽습니다. 열 이름은 x=, y= 선택과 일치해야 합니다.

문서에 배치

figure로 감싸 캡션, 라벨, 참조를 추가합니다.

LaTeX
\begin{figure}[tbp]  \centering  % 여기에 tikzpicture 또는 axis를 넣습니다.  \caption{시간에 따른 속도}  \label{fig:velocity}\end{figure}

캡션에서 내용, 자료 출처, 필요한 불확실성을 설명하세요. 그림 코드는 이런 설명을 대신하지 않습니다.

자주 발생하는 문제

Environment tikzpicture undefined

tikz를 불러오세요. 노드 배치에는 \usetikzlibrary{positioning}도 필요합니다.

Environment axis undefined

TikZ만으로는 부족합니다. axis를 제공하는 pgfplots를 불러오세요.

컴파일이 느림

불필요한 표본과 레이어를 줄이고 준비된 데이터 파일을 사용하세요. 매우 큰 그림은 별도 프로젝트에서 컴파일해 PDF를 내려받은 뒤 메인 프로젝트에 이미지로 올릴 수 있습니다.

전체 예제

LaTeX
\documentclass[a4paper,12pt]{article}\usepackage{kotex}\usepackage{pgfplots}\pgfplotsset{compat=1.18}​\begin{document}​\begin{figure}[tbp]  \centering  \begin{tikzpicture}    \begin{axis}[      width=0.75\linewidth,      xlabel={시간 (s)},      ylabel={속도 (m/s)},      grid=major    ]      \addplot[blue,thick,mark=*] coordinates {        (0,0) (1,1) (2,4) (3,9)      };    \end{axis}  \end{tikzpicture}  \caption{시간에 따른 속도}  \label{fig:velocity}\end{figure}​\end{document}