У меня есть матрица 40 на 96 (96 мер за 40 временных шагов), которую я могу построить следующим образом:
import matplotlib.pyplot as plt
t = np.array(range(1,41))
t_rep = np.repeat(t[:, np.newaxis], 40, axis = 1)
plt.figure()
plt.plot(t_rep, dataMatrix, color = [1. , 0.07107927, 0. , 1.])
Тогда все линии будут одного цвета, указанного триплетом RGB. То, что я не хочу делать, это построить 96 наборов данных цветом, который зависит от области под кривой.
У меня есть этот код:
#Normalizes the colormap too match my data
norm = mpl.colors.Normalize(vmin=np.sum(dataMatrix, axis = 0).min(), vmax=np.sum(dataMatrix, axis = 0).max())
cmap = cm.hot
plt.figure()
for n in range(0, 96):
x = np.sum(dataMatrix[:,n])
color = cm.ScalarMappable(norm=norm, cmap=cmap)
plt.plot(t, conc_data_plot1[:,n], color = np.array(color.to_rgba(x)), linewidth = 0.5)
И это делает работа, но я не хочу избавляться от for l oop, так как у меня иногда есть наборы данных, которые намного больше, чем 96.