Mejores Prácticas de Visualización
Gráficos honestos, legibles y accesibles que comunican decisiones sin distorsionar los datos.
Cómo Usar Esta Lista
- Aplica antes de exportar cualquier gráfico a partes interesadas o diapositivas.
- Úsala en la revisión de PR para notebooks, aplicaciones Streamlit y generadores de informes.
- Combínala con Graficar Datos Grandes cuando los puntos superen las decenas de miles.
A - Elección de Gráfico y Honestidad
- Adapta el gráfico a la pregunta. Tendencias = línea; partes de un todo solo cuando hay pocas categorías y suman 100%.
- Los gráficos de barras comienzan en cero. Un eje Y truncado exagera las diferencias a menos que la escala logarítmica sea explícita y esté etiquetada.
- Evita ejes Y duales a menos que sea necesario. Escalas diferentes confunden; prefiere series indexadas o paneles separados.
- Ordena las categorías intencionalmente. Por valor, tiempo u orden del dominio; nunca alfabéticamente por defecto para los meses.
- Etiqueta las unidades en los títulos de los ejes. Dólares, porcentaje, recuento; no números sin formato.
B - Legibilidad y Accesibilidad
- Usa paletas seguras para daltónicos.
seaborn colorblind,viridisu Okabe-Ito; no el arcoíris jet. - No dependas solo del color. Añade marcadores, tramas o etiquetas directas para las categorías.
- Limita el número de series. Más de ~6 líneas en un gráfico requieren facetas o resaltar una serie.
- Tamaños de fuente legibles. Mínimo de 10-12 pt en el PNG final al tamaño de visualización previsto.
- El título indica la conclusión. "Los ingresos del Oeste crecieron un 12% en el segundo trimestre" es mejor que "Gráfico de ingresos".
C - Preparación de Datos
- Agrega antes de graficar. Dispersiones de un millón de puntos se convierten en hexbins, resúmenes SQL o imágenes de datashader.
- Documenta los filtros. Los widgets de la aplicación y las cláusulas WHERE de SQL pertenecen al subtítulo o al pie de foto.
- Maneja los datos faltantes explícitamente. Huecos en líneas o interrupciones anotadas; sin interpolación silenciosa.
- Usa zonas horarias consistentes. UTC en los datos; local solo en la visualización con etiqueta.
- Versión de la instantánea de datos. Pie de página con
data_dty SHA de git para reproducibilidad.
D - Exportación y Producción
- Cierra las figuras de matplotlib en bucles. Evita fugas de memoria en trabajos por lotes.
- Elige el formato para el medio. PDF/SVG para impresión; PNG a 150 dpi para pantalla, 300 dpi para diapositivas.
- Almacena en caché las consultas del panel.
cache_datade Streamlit, almacenes de Dash; no recarga de Parquet por clic. - Prueba la renderización sin cabeza.
matplotlib.use("Agg")en pruebas de instantáneas de CI. - No edites gráficos manualmente después de exportar. Cambia el script, no los rectángulos de PowerPoint.
Preguntas Frecuentes
¿Cuándo no puede el eje Y empezar en cero?
- Gráficos de línea de tasas o índices donde los pequeños movimientos importan y la escala está etiquetada.
- Nunca para comparaciones de magnitud de barras sin una justificación clara.
¿Gráfico de pastel o de barras?
- Casi siempre de barras; es más fácil comparar longitudes que ángulos.
- Pastel solo para 2-3 partes de un todo y diapositivas estáticas.
¿Cómo muestro la incertidumbre?
- Barras de error, cintas o diagramas de caja/violín; indica qué intervalo significa (IC vs IQR).
¿Qué pasa con los gráficos 3D?
- Evítalos; distorsionan la percepción. Usa paneles 2D facetados en su lugar.
¿Cómo pruebo la salida del gráfico?
- Instantáneas de bytes PNG en CI con datos de semilla fijos.
- Afirma que el archivo existe y que el tamaño es > umbral como puerta de entrada mínima.
¿Interactivo o estático?
- Estático para artículos y correo electrónico; interactivo para paneles de exploración.
- No envíes por correo electrónico 5 MB de Plotly HTML a menos que se solicite.
¿Cómo anoto los valores atípicos?
ax.annotatecon una etiqueta corta; explica por qué el punto es importante.- No elimines los valores atípicos del gráfico sin divulgarlo.
¿Debería usar los valores predeterminados de seaborn?
- Son un buen punto de partida; aún así verifica las escalas, etiquetas y la elección del estimador.
¿Cómo manejo el desequilibrio de clases en los gráficos?
- Muestra recuentos junto con las tasas; usa vistas separadas para la prevalencia frente al rendimiento.
¿Qué es el "chartjunk"?
- Rejillas pesadas, efectos 3D y decoración que no codifican datos.
- Prefiere
seaborn tickso una rejilla ligera con alfa 0.3.
Relacionados
- Conceptos Básicos de Visualización - recorrido por los gráficos
- matplotlib - exportación y diseño
- Graficar Datos Grandes - agregación
- Mejores Prácticas de Análisis de Datos - números confiables aguas arriba
Versiones de la Pila: Esta página fue escrita para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, y uv 0.6+.