Este es mi post de continuación de generación de gráficos (que puedes leer aquí) En este blog veremos como gráficas los diferentes tipos de gráficos que podemos hacer con Matplotlib. 

¿Cómo está organizado este blog?

  1. Tipo de gráfico
  2. Definición 
  3. Ejemplo en código
  4. Graficación 

Lo que vamos a ver:

  1. Gráfico Lineal
  2. Gráficos de líneas verticales
  3. Gráfico de series combinadas
  4. Gráfico de pastel
  5. Gráfico de caja y bigotes
  6. Histograma 
  7. Histograma Gaussiano
  8. Gráfica de barras
  9. Gráfica de barras horizontales 
  10. Gráfico de escaleras
  11. Gráfica de Violín

Gráfico lineal (plot)

Es el que ya vimos durante todo un blog (Verlo aquí)

x = np.arange(1, 11)
y = np.random.randint(10, size=10)
plt.plot(x, y)
plt.show()

Gráfico de líneas verticales (stem)

Este gráfico es muy útil para ilustrar valores positivos y negativos.

plt.stem(x, y)
plt.show()

Gráfico de series comparadas (fill_between)

Con éste podemos rellenar el espacio que hay entre dos series en el eje Y, pero hay que dibujarlas de más excluyente a menos para que no solapen los colores.

for t in range(1, 11)[::-1]:
plt.fill_between(
range(1, 11),
[t * n for n in range(1, 11)],
label=f"Tabla del {t}"
)
plt.title("Tablas de multiplicar")
plt.legend(loc='upper left')
plt.show()

Gráfico circular o de pastel (pie)

El gráfico de “quesitos” como yo lo llamo es muy útil para representar porcentajes

turistas = [86.9, 81.8, 75.9, 60.7, 58.2, 39.3, 37.7, 37.6, 37.5, 35.4]
paises = ['Francia', 'España', 'EEUU', 'China', 'Italia',
'México', 'Reino Unido', 'Turquía', 'Alemania', 'Tailandia']
explode = [0, 0.2, 0, 0, 0, 0.4, 0, 0, 0, 0]  # Destacar algunos
plt.pie(turistas, labels=paises, explode=explode,
autopct='%1.1f%%', shadow=True, startangle=90)
plt.title('TOP 10 DESTINOS TURÍSTICOS EN 2017')
plt.show()

Gráfico de cajas y bigotes (boxplot)

Este tipo nos permite hacernos una idea de valores medios gracias a las cajas, mientras por otro lado los bigotes nos indican valores limitantes.

En Khan Academy hay una explicación perfecta para aprender a generar e interpretar este tipo de gráfico

jap = np.random.uniform(166, 176, 100)
ale = np.random.uniform(175, 185, 100)
arg = np.random.uniform(170, 180, 100)
# Cambio los colores para que se vea bien en VSC con tema oscura
plt.boxplot([jap, ale, arg],
notch=True, patch_artist=True,
capprops=dict(color="green"),
medianprops=dict(color="orange"),
whiskerprops=dict(color="yellow"))
plt.xticks([1, 2, 3], ['Japón', 'Alemania', 'Argentina'])
plt.ylabel('Estaturas (cm)')
plt.show()

Gráfico histograma (hist)

Los histogramas sirven para hacernos una idea de la frecuencia de distribución de valores en un rango determinado.

alturas = np.random.uniform(170, 180, 1000)
# El rango se define con bins, debe ser menor que el número de muestras
plt.hist(alturas, bins=10, edgecolor='black')
plt.title("Distribución de 1000 alturas")
plt.xlabel("Altura media (cm)")
plt.ylabel("Muestras")
plt.show()

Histograma gaussiano

Otro ejemplo con distribución gaussiana a partir de un vector normal con numpy que tiende a dibujar una campana con su máximo justo en medio

numeros = np.random.normal(size=1000)
plt.hist(numeros, bins=10, edgecolor='black')
plt.title("Histograma Gaussiano")
plt.xlabel("Valor")
plt.ylabel("Frecuencia")
plt.show()

Gráfico de barras (bar)

Este es el clásico gráfico donde las barras nos indican cantidades en el eje Y para los valores en el eje X.

fechas = ['19/08/2019', '20/08/2019', '21/08/2019', '22/08/2019', '23/08/2019']
primas = [79, 80, 79, 80, 82]
plt.bar(range(5), primas, edgecolor='black')
plt.xticks(range(5), fechas, rotation=60)
plt.title("PRIMA DE RIESGO EN ESPAÑA")
plt.ylim(min(primas)-1, max(primas)+1)
plt.show()

Gráfico de barras horizontales (barh)

Es una variante del anterior con las columnas dispuestas horizontalmente, por lo que cambian los ejes de las etiquetas y límites

fechas = ['19/08/2019', '20/08/2019', '21/08/2019', '22/08/2019', '23/08/2019']
primas = [79, 80, 79, 80, 82]
plt.barh(range(5), primas, edgecolor='black')
plt.yticks(range(5), fechas, rotation=60)
plt.title("PRIMA DE RIESGO EN ESPAÑA")
plt.xlim(min(primas)-1, max(primas)+1)
plt.show()

Gráfico de escaleras (step)

Otro gráfico muy simple que nos muestra las variaciones de forma continuada dibujando una escalera

x = np.arange(1, 11) y = np.random.randint(10, size=10)  plt.step(x, y) plt.show()

Gráfica de Violín

ax = plt.violinplot(x="day", y="total_bill", data=tips)

Matplotlib cuenta con un gran galería de gráficos que puedes revisar en su documentación oficial aquí

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *