TikZ, PGFPlots y gráficos técnicos
TikZ permite dibujar esquemas, diagramas de flujo y geometría. PGFPlots añade ejes y gráficos de datos sobre TikZ. Ambos producen gráficos vectoriales escalables con fuentes y notación coherentes con el documento.
En EasyLaTeX, usa pdfLaTeX con article, tikz para diagramas o pgfplots para datos. Las figuras complejas aumentan el tiempo de compilación.
Cuándo dibujar con código
| Necesidad | Opción |
|---|---|
| Fotografías, escaneos, capturas | Imagen existente |
| Flujos, estructuras, geometría | TikZ |
| Funciones, mediciones, barras de error | PGFPlots |
| Ilustraciones complejas o archivos especializados | Exporta PDF desde la herramienta; convierte SVG a PDF o a una imagen apropiada antes de insertarlo |
El código facilita reproducibilidad, control de versiones y fuentes uniformes. Si una herramienta especializada resulta más apropiada, importa un formato de salida estable.
TikZ mínimo
Carga el paquete en el preámbulo:
\usepackage{tikz}Dibuja ejes y un segmento:
\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}En coordenadas cartesianas normales, la unidad predeterminada es 1 cm. \draw crea trayectorias, los corchetes definen estilos y node añade texto.
Nodos y flechas
Define estilos reutilizables:
\begin{tikzpicture}[ box/.style={draw, rounded corners, minimum width=2.5cm, minimum height=8mm}, arrow/.style={->, thick}] \node[box] (input) {Datos de entrada}; \node[box, right=1.5cm of input] (process) {Proceso}; \node[box, right=1.5cm of process] (output) {Salida}; \draw[arrow] (input) -- (process); \draw[arrow] (process) -- (output);\end{tikzpicture}right=... of ... necesita la biblioteca de posicionamiento:
\usetikzlibrary{positioning}Los estilos compartidos mantienen la coherencia. Acorta las etiquetas largas o define text width para evitar solapamientos.
Gráfico mínimo de PGFPlots
Carga el paquete y fija la compatibilidad:
\usepackage{pgfplots}\pgfplotsset{compat=1.18}Dibuja coordenadas incluidas en el código:
\begin{tikzpicture} \begin{axis}[ xlabel={Tiempo (s)}, ylabel={Velocidad (m/s)}, grid=major ] \addplot coordinates {(0,0) (1,1) (2,4) (3,9)}; \end{axis}\end{tikzpicture}axis gestiona ejes, marcas, etiquetas y cuadrícula; \addplot aporta una serie. Nombra claramente magnitudes y unidades y no diferencies series solo por el color.
Leer datos de un archivo
Crea data/velocity.csv:
time,velocity0,01,12,43,9Lee las columnas por nombre:
\addplot table [x=time, y=velocity, col sep=comma] {data/velocity.csv};Separar datos y dibujo facilita actualizar y comprobar resultados. Los nombres deben coincidir con x= e y=.
Integrar el gráfico
Usa figure para añadir leyenda, etiqueta y referencia:
\begin{figure}[tbp] \centering % Coloca aquí tikzpicture o axis \caption{Velocidad en función del tiempo} \label{fig:velocity}\end{figure}La leyenda debe explicar el contenido, la procedencia de datos y la incertidumbre cuando corresponda. El código no sustituye esa explicación.
Problemas frecuentes
Environment tikzpicture undefined
Carga tikz; para posicionar nodos, añade \usetikzlibrary{positioning}.
Environment axis undefined
Carga pgfplots, no solo TikZ: axis pertenece a PGFPlots.
Compilación lenta
Reduce muestras y capas innecesarias y usa archivos de datos preparados. Para un dibujo muy grande, compílalo en un proyecto aparte, descarga el PDF y súbelo como imagen al proyecto principal.
Ejemplo completo
\documentclass[a4paper,12pt]{article}\usepackage[T1]{fontenc}\usepackage[spanish]{babel}\usepackage{pgfplots}\pgfplotsset{compat=1.18}\begin{document}\begin{figure}[tbp] \centering \begin{tikzpicture} \begin{axis}[ width=0.75\linewidth, xlabel={Tiempo (s)}, ylabel={Velocidad (m/s)}, grid=major ] \addplot[blue,thick,mark=*] coordinates { (0,0) (1,1) (2,4) (3,9) }; \end{axis} \end{tikzpicture} \caption{Velocidad en función del tiempo} \label{fig:velocity}\end{figure}\end{document}