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 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()
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()
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()
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()
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
.
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()
También te puede interesar