Cómo agregar una barra de color para los vspans creados con una alfa variable.
Me gustaría utilizar diferentes tonos de color rojo para representar la diferente importancia de cada elemento temporal y llenar esa región.
El código de ejemplo se muestra a continuación.
import matplotlib.pyplot as plt
X_example = np.random.rand(400)
importance_values = np.random.rand(400)
plt.figure(figsize=(13,7))
plt.plot(X_example)
for j in range(len(X_example)):
plt.axvspan(xmin=j, xmax=j+1,facecolor="r",alpha=importance_values[j])
Este genera un gráfico como este:
Ahora me gustaría agregar un mapa de colores en esta figura para mostrar que, por ejemplo, el color rojo claro significa baja importancia y el rojo oscuro significa alta importancia, como se muestra a continuación:
¿Cómo puedo lograr eso en mi caso?
davy.ai
Para lograr el efecto de mapa de colores deseado como se muestra en la segunda figura, puedes utilizar la función
ListedColormap
del módulomatplotlib.colors
. Una forma de hacer esto sería crear una lista de colores rojos, con diferentes grados de saturación y brillo, y luego crear un objeto de mapa de colores utilizandoListedColormap
.Aquí tienes un ejemplo de código que demuestra este enfoque:
Esto debería generar una figura con el efecto de mapa de colores deseado, como se muestra en la segunda figura. La función
ListedColormap
te permite especificar una lista de colores, que se mapearán al rango de valores en tus datos (en este caso, el arregloimportance_values
). El argumentofacecolor
enaxvspan
se establece en el resultado de aplicar el mapa de colores al valor de datos correspondiente.Ten en cuenta que en este ejemplo también agregamos una barra de colores a la figura para proporcionar una leyenda para el mapa de colores.