TikZ, PGFPlots, 기술 도식
TikZ는 도식, 흐름도, 기하 그림을 만들고, PGFPlots는 TikZ 위에 좌표축과 데이터 그래프를 제공합니다. 둘 다 문서 글꼴 및 표기와 어울리는 확대 가능한 벡터 그래픽을 만듭니다.
EasyLaTeX에서는 XeLaTeX와 article + kotex를 사용합니다. 도식에는 tikz, 데이터 그래프에는 pgfplots를 불러오세요. 복잡한 그림은 컴파일 시간을 늘립니다.
코드로 그리면 좋은 경우
| 필요 | 적합한 방법 |
|---|---|
| 사진, 스캔, 화면 캡처 | 기존 이미지 삽입 |
| 흐름도, 구조도, 기하 그림 | TikZ |
| 함수, 측정값, 오차 막대 | PGFPlots |
| 복잡한 그림이나 전문 도구 파일 | 도구에서 PDF로 내보내기. SVG는 PDF나 적절한 래스터 이미지로 변환 |
코드 그림은 재현성, 버전 관리, 글꼴 일관성에 유리합니다. 전문 도구가 더 적합하면 안정적인 형식으로 내보내 삽입하세요.
최소 TikZ 도식
서문에서 불러옵니다.
\usepackage{tikz}축과 선분을 그립니다.
\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는 텍스트를 지정합니다.
노드와 화살표
스타일을 정의해 재사용합니다.
\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 ... 문법에는 다음 라이브러리가 필요합니다.
\usetikzlibrary{positioning}공통 스타일로 일관성을 유지하세요. 긴 라벨은 줄이거나 text width를 지정해 노드가 겹치지 않게 합니다.
최소 PGFPlots 그래프
패키지와 호환성 수준을 설정합니다.
\usepackage{pgfplots}\pgfplotsset{compat=1.18}코드 안의 좌표를 그립니다.
\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를 만듭니다.
time,velocity0,01,12,43,9열 이름으로 읽습니다.
\addplot table [x=time, y=velocity, col sep=comma] {data/velocity.csv};데이터와 그림 코드를 분리하면 수정과 검토가 쉽습니다. 열 이름은 x=, y= 선택과 일치해야 합니다.
문서에 배치
figure로 감싸 캡션, 라벨, 참조를 추가합니다.
\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를 내려받은 뒤 메인 프로젝트에 이미지로 올릴 수 있습니다.
전체 예제
\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}