mygems

Cómo hacer un gráfico a partir de un archivo CSV

Casi todos los fallos al graficar un CSV son fallos de datos: un número guardado como texto, un N/A, la columna equivocada como etiquetas. Excel, Sheets, Python o celular.

Por mygems ·

Hacer el gráfico es lo fácil: seleccionas dos columnas, eliges un tipo de gráfico y listo. Cuando algo sale mal, y con los archivos CSV pasa seguido, el gráfico casi nunca es el problema. Los datos sí. Un número guardado como texto, un N/A en una columna de cifras, una columna de años que la herramienta decide tratar como una serie de datos. Arregla eso y cualquier herramienta dibujará el gráfico.

La respuesta rápida

  • Excel: abre el CSV, selecciona la columna de etiquetas y la columna de números, y ve a Insertar → Gráficos recomendados.
  • Google Sheets: sube el archivo, ábrelo, selecciona y ve a Insertar → Gráfico.
  • Python: pandas más df.plot(), tres líneas, más abajo.
  • En el celular: una app que grafica un CSV directamente, sin convertirlo antes en una hoja de cálculo.
  • Antes de cualquiera de ellos: comprueba que la columna de números sean realmente números, y decide si necesitas totalizar los datos primero.

Paso cero: ¿hay que resumir estos datos primero?

Una exportación en CSV suele tener una fila por evento: por pedido, por transacción, por visita. Si la grafícas tal cual, obtienes 40.000 barras finísimas. Lo que realmente quieres es una barra por categoría: ingresos por mes, pedidos por región.

Así que primero pregúntate: ¿una fila por qué? Si la respuesta no es lo que va en el eje x de tu gráfico, primero súmalo. En Excel o Sheets eso es una tabla dinámica. Con SQL es una sola consulta:

duckdb -c "SELECT region, sum(amount) AS revenue FROM 'orders.csv' GROUP BY region ORDER BY revenue DESC"

Después grafica el resultado pequeño, no el archivo grande. La guía para sumar una columna en un CSV explica este paso con más detalle.

Elige el gráfico según la pregunta

Quieres mostrarUsaEvita
Qué categoría es la mayorBarras (horizontales si las etiquetas son largas)Circular con más de cinco porciones
Cambio a lo largo del tiempoLíneasBarras, con más de ~20 puntos
Proporción de un totalBarras apiladas, o circular para 2–5 partesCualquier cosa en 3D
Relación entre dos númerosDispersiónLíneas (sugieren un orden)
Distribución de un númeroHistogramaGráfico de barras de valores brutos

En Excel

  1. Abre el CSV. (Si contiene identificadores, códigos postales o números largos, impórtalo en lugar de abrirlo; consulta cómo evitar que Excel cambie los datos de tu CSV.)
  2. Selecciona la columna de etiquetas, luego mantén presionada Ctrl (⌘ en Mac) y selecciona la columna de números.
  3. Insertar → Gráficos recomendados, o elige un tipo directamente.

El problema clásico: la columna de años se convierte en una serie. Si tus etiquetas son números (2021, 2022, 2023), Excel los trata como datos y los dibuja como una segunda línea al fondo. Convierte la columna de etiquetas a texto, o borra el texto del encabezado en la primera celda de esa columna. Con la celda superior izquierda vacía, Excel lee la columna como etiquetas.

El otro problema clásico: no se grafica nada. Los números guardados como texto (un triángulo verde en la esquina de cada celda) se grafican como cero. Selecciona la columna, haz clic en el icono de advertencia y elige Convertir en número.

En Google Sheets

  1. Sube el CSV a Drive y ábrelo con Sheets, o usa Archivo → Importar en una hoja existente.
  2. Selecciona las columnas y elige Insertar → Gráfico.
  3. En el editor de gráficos, marca Usar la columna A como etiquetas y, si el gráfico se ve transpuesto, Cambiar filas/columnas.

Sheets tiene una función que en Excel cuesta más: en la pestaña Configuración del editor de gráficos, al marcar Agregar junto al eje x se suman por ti las etiquetas repetidas. Para obtener rápido una "suma por categoría" a partir de filas sin procesar, te ahorra la tabla dinámica.

En Python

Para todo lo que vayas a hacer más de una vez, un script es mejor que hacer clic:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("orders.csv")
df.groupby("region")["amount"].sum().sort_values().plot(kind="barh")
plt.tight_layout()
plt.savefig("revenue-by-region.png", dpi=200)

Vuelve a ejecutarlo el próximo mes con la nueva exportación y el gráfico se actualiza solo.

Los problemas de datos detrás de casi todos los gráficos rotos

  • Una columna con un solo valor que no es número. N/A, -, TBC o un espacio en blanco escrito a mano. Muchas herramientas tratan entonces toda la columna como texto, y desaparece del gráfico o se dibuja como cero.
  • Símbolos de moneda y separadores de miles. $1,200 es texto para la mayoría de los analizadores. Quita símbolos y separadores, o usa una herramienta que los entienda.
  • Comas decimales. Un archivo de un sistema alemán o francés escribe 1.234,50. Abierto con configuración regional en inglés, es texto o, peor, un número mil veces más grande.
  • Fechas como texto. Ordenadas alfabéticamente, Apr va antes que Jan. Conviértelas en fechas reales, o nombra los meses 2026-01, 2026-02, que se ordenan bien incluso como texto.
  • Una fila de total al final. Muchas exportaciones terminan con una línea "Total", que luego se alza sobre todas las barras reales. Bórrala antes de graficar.

En el celular

Las apps de hojas de cálculo del celular pueden graficar un CSV después de convertirlo, con los mismos problemas de datos de arriba y una pantalla más pequeña para corregirlos. Una app de CSV que grafica el archivo directamente se salta la conversión.

En Smart CSV Viewer es ⋯ → Gráfico: elige un tipo, escoge la columna de Etiquetas y una o más columnas de Series, y exporta el gráfico como imagen. Si una columna de serie contiene algo que no es un número, te dice qué columna y qué celda, y con un toque llegas a esa celda para corregirla, que es la solución al primer problema de la lista de arriba.

Un gráfico de columnas del presupuesto por destino, con Etiquetas definido como Destino y Series definido como Presupuesto en la barra inferior
Etiquetas, series, exportar
CSV File Viewer - Smart CSViPhone y iPad · Android

Grafica un CSV en iPhone o Android sin convertirlo, indica la celda que no es un número y exporta el gráfico como imagen.

Qué hace

Para ser transparente con los límites: la versión gratuita dibuja gráficos de columnas, barras y líneas con las primeras diez filas; Pro añade todos los tipos de gráfico y hasta 1.000 filas. Para graficar un archivo grande sin procesar, resúmelo primero, como en el paso cero. Es un buen consejo sin importar cuánto pagues.

Preguntas

¿Cómo hago un gráfico a partir de un archivo CSV en Excel?
Abre el CSV, selecciona la columna de etiquetas y la columna de números (mantén Ctrl o Cmd para seleccionar ambas) y elige Insertar → Gráficos recomendados. Si los números están guardados como texto, conviértelos primero o el gráfico mostrará ceros.
¿Por qué mi columna de años se dibuja como una línea en Excel?
Excel trata una columna de números como datos, incluso si son años. Convierte la columna de años a texto o borra el texto del encabezado en su primera celda; con la celda superior izquierda vacía, Excel lee esa columna como etiquetas.
¿Por qué no aparecen mis datos del CSV en el gráfico?
Normalmente los números están guardados como texto: un símbolo de moneda, un separador de miles, una coma decimal o un solo N/A en la columna. Limpia esos valores o convierte la columna a números y el gráfico se dibujará.
¿Puedo hacer un gráfico a partir de un CSV sin Excel?
Sí. Google Sheets es gratis y grafica un CSV después de subirlo, Python con pandas lo grafica en unas pocas líneas y, en el celular, una app de CSV puede graficar el archivo directamente sin convertirlo.
¿Cómo grafico un CSV con miles de filas?
Resúmelo primero. Una exportación sin procesar tiene una fila por evento; agrúpala por la categoría o el periodo que quieres en el gráfico, con una tabla dinámica o un GROUP BY de SQL, y grafica los totales. Miles de barras individuales son ilegibles en cualquier herramienta.

mygems — Desarrolla CSV Editor y Smart CSV Viewer, dos apps que existen porque las hojas de cálculo se rinden con los archivos grandes.