Tips para figuras de tesis

Diseño gráfico de las figuras

Formatos de archivo

Existen dos paradigmas importantes con la que se codifica la información de una imagen de computadora: mapa de bits y vectoriales. Es importante conocer conocer la diferencia entre estos formatos para producir figuras de buena calidad sin generar archivos inncesesariamente grandes.

Formatos de mapa de bits Formatos vectoriales
PNG, JPEG, TIFF, BMP, PDF* SVG, EPS, PS, PDF*

Para entender las diferencias empecemos por ver las siguientes imágenes

Mapa de bits PNG (1,685 bytes) Vectorial SVG (157 bytes)

A pesar de que la imagen vectorial ocupa mucha menos memoria tiene una mejor definición. Incluso puedes hacer zoom y verás que, mientras la imagen PNG se pixelea aún más, la imagen SVG siempre tiene una forma circular bien definida. Para entender cómo es que esto ocurre hay que entender más a detalle cómo funciona cada uno de estos formatos.

Imágenes de mapas de bits

Las imágenes de mapas de bits se construyen a partir de una tabla en la que en cada celda se especifica el color que la imagen debe tener en ese punto. Por ejemplo, para el círculo mostrado antes se elige si cada pixel debe ser negro, gris o blanco:
bitmap_table
Para que la cuadrícula no se note y es necesario agregarle más filas y columnas a la tabla para que los pixeles resultantes sean más pequeños.

El formato BMP almacena directamente esta tabla y puede resultar en archivos muy grandes. Otros formatos como PNG y JPEG usan distintos métodos de compresión para reducir el tamaño de la imagen. Por ejemplo, si se tienen regiones grandes de una imágen con el mismo color (como es el caso del fondo blanco) se ocupa menos memoria si se especifica el color por región que por pixel.

Imágenes vectoriales

Si abres el archivo de la imagen vectorial con un editor de texto encontrarás algo como esto:

<svg width="300" height="300" xmlns="http://www.w3.org/2000/svg">
    <circle cx="150" cy="150" r="100" stroke="black" stroke-width="10" fill="none" />
</svg>

¡Eso es todo! Como en el código de la imagen dice que hay un círculo entonces no importa de qué tamaño se despliegue, la computadora sabe qued debe desplegarlo como círculo.

¿Cuándo usar cada tipo?

Dependiendo de la situación puede ser más pertinente usar uno u otro formato.

Para gráficas y diagramas usar vectoriales
Mapa de bits PNG (20,387 bytes) Vectorial SVG (21,805 bytes)
Para fotografías usar mapa de bits

Para fotografías las imágenes vectoriales no suelen ser una buena representación pues con las plastas y líneas que se pueden definir en imágenes vectoriales no se pueden representar las texturas que aparecen en fotografías.

Mapa de bits JPEG (355,258 bytes) Vectorial SVG (526,041 bytes)
Para mapas

Para mapas va a depender del caso específico si convendrá usar una versión vectorial o de mapa de bits. Algunos mapas vectoriales muy detallados pueden llegar a ocupar mucha memoria. Los mapas vectoriales suelen simplificarse si no se requieren las fronteras y costas con todo detalle.

Mapa de bits PNG (86,615 bytes) Vectorial SVG (151,067 bytes) fuente

Nota sobre formato PDF

Herramientas

Inkscape

Inkscape es una excelente herramientas de sofware libre para hacer dibujos vectoriales. Su formato principal es SVG pero puede exportar fácilmente a PDF para usar los dibujos en LaTeX. Además tiene varios plugins para poder poner fórmulas de LaTeX directamente en el dibujo. Es recomendable trabajar siempre en formato SVG y sólo guardar como PDF una copia para incluir en tu documento.

Matplotlib

Con la biblioteca matplotlib de python se pueden producir gráficas con calidad de publicación. Sin embargo, el tamaño de letra definido por defecto suele ser demasiado chico. Para aumentar el tamaño de letra para todo en tu gráfica puedes usar:

import pylab as pl
pl.rcParams.update({'font.size': 16})

Después de producir una figura con matplotlib puedes modificarla con inkscape. Sin embargo, lo mejor es que hagas lo más que puedas desde código y mantengas las intervenciones manuales al mínimo. Si después necesitas hacer un cambio en las figuras es más fácil ejecutar de nuevo todo el código que tener que hacer modificaciones manuales a cada figura.

LaTeX

Usando el paquete de LaTeX graphicx el formato PDF se puede usar para incluir a tu documento figuras vectoriales exportadas directamente desde python, inkscape o tu herramienta favorita.