Gráfico de áreas en matplotlib con fill_between

Gráfico de áreas en matplotlib con la función fill_between

La función fill_between de matplotlib está diseñada para crear un polígono coloreado entre una curva y el eje X (por defecto X = 0). Tan solo tendrás que pasar los datos a los argumentos x e y1 de la función.

import numpy as np
import matplotlib.pyplot as plt

# Datos
x = range(1, 5)
y = [21, 12, 16, 10]

# Gráfico de áreas
fig, ax = plt.subplots()
ax.fill_between(x = x, y1 = y)
# plt.show()

Gráfico de áreas en matplotlib

Gráfico de líneas con área coloreada

Ten en cuenta que si lo que quieres es crear un gráfico de líneas con el área coloreadas donde el color de la curva sea diferente al del área también tendrás que pasar tus datos a la función plot y personalizar la línea como quieras, tal y como se muestra en el bloque de código siguiente.

import numpy as np
import matplotlib.pyplot as plt

# Datos
x = range(1, 5)
y = [21, 12, 16, 10]

# Gráfico de áreas
fig, ax = plt.subplots()
ax.fill_between(x, y)
ax.plot(x, y, color = "k", linewidth = 1.5)
# plt.show()

Area plot en matplotlib

Transparencia

El área coloreada es por defecto opaca, pero es posible personalizar su transparencia con el argumento alpha, que toma valores desde 0 (transparente) a 1 (opaco).

import numpy as np
import matplotlib.pyplot as plt

# Datos
x = range(1, 5)
y = [21, 12, 16, 10]

# Gráfico de áreas
fig, ax = plt.subplots()
ax.fill_between(x, y, alpha = 0.5)
# plt.show()

Transparencia de un gráfico de áreas en matplotlib

Color del área

Por defecto el color del área es azul, pero el argumento color permite especificar cualquier color que desees, tal y como se muestra en el ejemplo siguiente.

import numpy as np
import matplotlib.pyplot as plt

# Datos
x = range(1, 5)
y = [21, 12, 16, 10]

# Gráfico de áreas
fig, ax = plt.subplots()
ax.fill_between(x, y, alpha = 0.5, color = "g")
# plt.show()

Area chart en matplotlib

Color del borde

Ten en cuenta que también puedes personalizar el color del borde y su grosor utilizando los argumentos edgecolor y linewidth, respectivamente.

import numpy as np
import matplotlib.pyplot as plt

# Datos
x = range(1, 5)
y = [21, 12, 16, 10]

# Gráfico de áreas
fig, ax = plt.subplots()
ax.fill_between(x, y, alpha = 0.5, edgecolor = "r", linewidth = 2)
# plt.show()

Area chart en Python

Colorear el área entre dos curvas

La función fill_betwwen no solo colorea el área de una sola curva. Si pasas una nueva curva al argumento y2 la función coloreará el área entre y1 e y2.

Área entre dos curvas en matplotlib

import numpy as np
import matplotlib.pyplot as plt

# Datos
x = range(1, 5)
y = [21, 12, 16, 10]
y1 = [19, 10, 14, 8]
y2 = [22, 14, 18, 12]

# Gráfico de áreas
fig, ax = plt.subplots()
ax.fill_between(x, y1 = y1, y2 = y2, alpha = 0.25) # Polígono
ax.plot(x, y) # Line
# plt.show()
Storytelling con Datos

Visualización de datos para profesionales

Comprar en Amazon
Fundamentals of Data Visualization

A Primer on Making Informative and Compelling Figures

Comprar en Amazon

También te puede interesar