¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Gráficos y paneles que responden preguntas

Después de esta lección: Puedo hacer un gráfico que responda a una pregunta.

Lección de 50 min3 comandosLaboratorio JupyterLab de ciencia de datos: pandas, Matplotlib y scikit-learn en el navegador

Un gráfico que nadie entiende no sirve

Un gráfico es un dibujo de los datos que responde a una pregunta de un vistazo. Un panel reúne varios gráficos en una sola pantalla para una persona concreta.

Tu jefa de la tienda de bicis no quiere una tabla de 365 filas. Quiere saber en qué meses hace falta más personal. Un buen gráfico se lo dice en dos segundos.

Al terminar esta lección

Nota

Puedo hacer un gráfico que responda a una pregunta.

Palabras clave

PalabraQué significa
Gráfico de barrascompara un valor entre grupos distintos
Gráfico de líneasmuestra cómo cambia un valor con el tiempo
Histogramacuenta cuántos valores caen en cada tramo
Dispersiónun punto por cada par de números
Ejela línea con la escala de un gráfico
Paneluna pantalla con varios gráficos para una persona

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Primero la pregunta, después el gráfico

No elijas el gráfico por lo bonito que queda. Elige primero la pregunta, y el tipo de gráfico sale casi solo.

¿Comparas grupos? Barras. ¿Sigues algo en el tiempo? Líneas. ¿Quieres ver cuántos valores hay de cada tamaño? Histograma. ¿Dos números a la vez? Dispersión.

Ejemplo resuelto: la pregunta decide el gráfico

PreguntaGráficoQué dibujas
¿Qué día de la semana hay más trabajo?Barrasweekday y la media de hires
¿Cómo cambia el trabajo a lo largo del año?Líneasmonth y la media de hires
¿Cuántos días son tranquilos y cuántos movidos?Histogramahires sola
¿La lluvia quita clientes?Dispersiónrain_mm y hires

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

La media de alquileres de cada mes

Comando
docker exec jupyter python3 steps/months.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Escribe esto en tu cuaderno: barras por día

Código: python
import pandas as pd

hires = pd.read_csv("hires.csv")
order = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
by_day = hires.groupby("weekday")["hires"].mean().reindex(order)
# Barras, porque cada día de la semana es un grupo.
by_day.plot.bar(title="Media de alquileres por día")

Un histograma cuenta valores en tramos

Un histograma corta la escala en tramos del mismo ancho y cuenta cuántos valores caen en cada uno. Con un ancho de 50, el tramo 250 a 299 recoge todos los días con esos alquileres.

Para saber el tramo de un valor, haz la división entera valor // ancho. Así, 273 // 50 da 5, el sexto tramo, porque se empieza a contar en 0.

Contar los días por tramos

Comando
docker exec jupyter python3 steps/hist.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Pruébalo: tramos a mano

Código: python
# Reparte los alquileres de cada día en tramos de 100.
days = [41, 95, 150, 260, 275, 299, 300, 487]
width = 100
counts = [0, 0, 0, 0, 0]
for one in days:
    place = one // width
    counts[place] = counts[place] + 1
print(counts)
# Cambia 299 por 301. ¿Qué tramo crece y cuál baja?

El eje de unas barras empieza en cero

En unas barras, el ojo lee la longitud. Si el eje empieza en 220, una barra de 312 parece doce veces más larga que una de 228. En realidad es solo un 37 % mayor.

axis.py dibuja el mismo gráfico de dos maneras y calcula las dos proporciones. Abre axis.png desde la lista de archivos de JupyterLab y compara las dos mitades.

Dibujar un gráfico de dos maneras

Comando
docker exec jupyter python3 steps/axis.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que el eje puede empezar donde quede mejor. En unas barras no: su longitud se lee como el valor, así que el eje empieza en 0. Una línea puede empezar más arriba, porque allí se lee la forma. Si lo haces, dilo en el título.

Un panel responde a una persona

Un panel reúne dos, tres o cuatro gráficos para una sola persona y sus decisiones. No es un cajón donde cabe todo.

Cada gráfico lleva un título que dice la respuesta, como «Agosto es el mes más fuerte», y no solo el tema. Quita cualquier gráfico que no responda a una pregunta de esa persona.

Ejemplo resuelto: el panel de la jefa

PanelPregunta de la jefaGráficoTítulo que dice la respuesta
1¿Qué meses necesitan más personal?LíneasAgosto es el mes más fuerte y febrero el más flojo
2¿Qué días de la semana?BarrasLos fines de semana se alquila más
3¿Cómo es un día normal?HistogramaLo más habitual son de 250 a 299 alquileres

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Para ir más lejos

Abre axis.png y mira las dos mitades. Escribe una frase que le dirías a una compañera que dibuja unas barras con el eje empezando en 220 para que sus cifras parezcan mayores.

Después elige otra pregunta sobre el archivo, como los alquileres en días de lluvia, y decide qué gráfico la responde.

Sobre este laboratorio y su código: Laboratorio JupyterLab de ciencia de datos: pandas, Matplotlib y scikit-learn en el navegador

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.