¿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

Elegir el gráfico que responde a la pregunta

Después de esta lección: Puedo elegir un gráfico que responde 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 para la reunión del lunes

La gerente pide un gráfico para la reunión: «¿Los días de sol nos dan mucho más trabajo que los de lluvia?». Un compañero le enseña unas barras. La de sol parece doce veces más alta.

Los números dicen otra cosa. El gráfico no miente en los datos, miente en el eje. Hoy aprendes a elegir el gráfico y a leerlo.

Al final de esta lección

Nota

Puedo elegir un gráfico que responde a una pregunta.

Palabras clave

PalabraQué significaEjemplo
Gráfico de barrasuna barra por grupo; su altura es el valor
Gráfico de líneaspuntos unidos en orden, casi siempre en el tiempo
Histogramacuántos valores caen en cada tramo de igual ancho
Diagrama de dispersiónun punto por fila, con dos números como posición
Tramoun intervalo de valores de un histograma (bin en inglés)250 a 299
Ejela escala de un lado del gráfico

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

La pregunta decide el gráfico

Antes de dibujar, escribe la pregunta. ¿Comparas grupos? Usa barras. ¿Sigues algo en el tiempo? Usa una línea, porque los meses tienen orden.

¿Quieres ver cómo se reparten los valores de una sola columna? Usa un histograma. ¿Buscas la relación entre dos números? Usa un diagrama de dispersión.

Ejemplo resuelto: cuatro preguntas, cuatro gráficos

PreguntaGráficoQué columnas
¿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íneamonth 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.

Media de alquileres por 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.

Cuenta 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.

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 width a 50 y counts a diez ceros.
# ¿Qué tramo queda más lleno?

Escribe esto en tu cuaderno: lluvia y alquileres

Código: python
# Dos números por día: un punto por día.
hires.plot.scatter(x="rain_mm", y="hires", alpha=0.5)

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.

Dibuja 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 muy común

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 y no la longitud. Si lo haces, dilo en el título.

Para ir más lejos: el diagrama de caja

Unas barras de medias esconden cómo se reparten los días. Un diagrama de caja enseña la mediana y la dispersión de cada grupo.

En tu cuaderno, escribe hires.boxplot(column="hires", by="weather"). ¿Qué grupo tiene la caja más alta? ¿Se solapan las cajas de sol y de lluvia? Escribe una frase para la gerente con lo que muestra.

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.