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
| Palabra | Qué significa |
|---|---|
| Gráfico de barras | compara un valor entre grupos distintos |
| Gráfico de líneas | muestra cómo cambia un valor con el tiempo |
| Histograma | cuenta cuántos valores caen en cada tramo |
| Dispersión | un punto por cada par de números |
| Eje | la línea con la escala de un gráfico |
| Panel | una 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
| Pregunta | Gráfico | Qué dibujas |
|---|---|---|
| ¿Qué día de la semana hay más trabajo? | Barras | weekday y la media de hires |
| ¿Cómo cambia el trabajo a lo largo del año? | Líneas | month y la media de hires |
| ¿Cuántos días son tranquilos y cuántos movidos? | Histograma | hires sola |
| ¿La lluvia quita clientes? | Dispersión | rain_mm y hires |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
La media de alquileres de cada mes
docker exec jupyter python3 steps/months.pySe 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
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
docker exec jupyter python3 steps/hist.pySe 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
# 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
docker exec jupyter python3 steps/axis.pySe 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
| Panel | Pregunta de la jefa | Gráfico | Título que dice la respuesta |
|---|---|---|---|
| 1 | ¿Qué meses necesitan más personal? | Líneas | Agosto es el mes más fuerte y febrero el más flojo |
| 2 | ¿Qué días de la semana? | Barras | Los fines de semana se alquila más |
| 3 | ¿Cómo es un día normal? | Histograma | Lo 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.