trazar arrays por fila con matplotlib

Tengo dos matrices numpy (ayb) con forma (16, 850) cada una. Los estoy mostrando fila por fila, por ejemplo

plt.figure() plt.plot(a[0], b[0]) plt.plot(a[1], b[1]) plt.plot(a[2], b[2]) ... plt.show() 

¿Debo usar un bucle for para hacerlo de una manera más pythonica?

Puede pasar una matriz multidimensional para plot y cada columna se creará como un objeto de trazado separado. Transponemos ambas entradas para que graficen cada fila por separado.

 a = np.random.rand(16, 850) b = np.random.rand(16, 850) plt.plot(aT, bT) plt.show() 

Esto funcionará:

 plt.figure() for i in range(len(a)): plt.plot(a[i], b[i]) plt.show() 

Pero la forma en que se muestra Suever es mucho pythonica. Sin embargo, no todas las funciones tienen algo así como incorporado.

La forma más eficiente de dibujar muchas líneas es mediante el uso de un LineCollection . Esto podría parecer

 import numpy as np import matplotlib.pyplot as plt from matplotlib.collections import LineCollection x = np.random.rand(N,3) y = np.random.rand(N,3) data = np.stack((x,y), axis=2) fig, ax = plt.subplots() ax.add_collection(LineCollection(data)) 

para un grupo de líneas que consta de 3 puntos cada una.

Encuentre una comparación de los diferentes métodos y su eficiencia en la respuesta a Muchas plots en menos tiempo: python .