Cómo trazar pares de 2 ndarrays con el mismo color (discontinuo y sólido) con matplotlib.pyplot?
Tengo 2 ndarrays A y B que contienen 3 columnas cada uno. Las columnas de A y B corresponden y me gustaría trazar cada columna correspondiente de A y B como líneas del mismo color, una discontinua y otra sólida. Tengo este fragmento de código, pero por supuesto en el segundo comando plot()
, pyplot continúa con el siguiente color en el mapa de colores:
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0, 10, 1)
A = np.array([[1] * 10, [5] * 10, [10] * 10])
B = np.array([[4] * 10, [20] * 10, [40] * 10])
plt.figure(1)
plt.plot(t, A.T, label=['A_1', 'A_2', 'A_3'])
plt.plot(t, B.T, linestyle='--', label=['B_1', 'B_2', 'B_3'])
plt.legend()
plt.show()
Me gustaría forzar a pyplot.plot()
a comenzar de nuevo con el primer color del mapa de colores o cualquier otra forma agradable de lograr el resultado deseado. Podría trazar iterando sobre las columnas de ambos ndarrays y establecer colores específicos para cada iteración, pero me parece que debería haber una solución más corta y elegante. ¿Alguna idea al respecto? ¡Gracias!
davy.ai
Para trazar cada columna correspondiente de A y B como líneas en el mismo color, una línea punteada y otra sólida, podemos usar el parámetro “color” de la función “plot()” en lugar de depender del mapa de colores. Aquí está el código modificado:
Aquí, creamos dos listas
colors
ylinestyles
para especificar los colores y estilos de línea para cada línea. Luego, recorremos las filas deA
(oB
, ya que tienen la misma forma) y trazamos cada línea por separado, utilizando el color y el estilo de línea correspondientes de las listas. También establecemos el parámetrolabel
para crear una leyenda.Esto resultará en un gráfico con cada columna correspondiente de
A
yB
mostrada en el mismo color, con una línea punteada y la otra sólida.