Jak ustawić kolor linii w matplotlib przy pomocy wartości skalarnych dostarczonych w czasie wykonywania za pomocą mapy kolorów (np. jet
)? Próbowałem tutaj kilku różnych podejść i myślę, że jestem zakłopotany. values[]
to starchowa sieć skalarów. krzywe są zbiorem tablic 1-d, a etykiety są tablicą ciągów tekstowych. Każda z macierzy ma tę samą długość.Używanie Colormaps do ustawienia koloru linii w matplotlib
fig = plt.figure()
ax = fig.add_subplot(111)
jet = colors.Colormap('jet')
cNorm = colors.Normalize(vmin=0, vmax=values[-1])
scalarMap = cmx.ScalarMappable(norm=cNorm, cmap=jet)
lines = []
for idx in range(len(curves)):
line = curves[idx]
colorVal = scalarMap.to_rgba(values[idx])
retLine, = ax.plot(line, color=colorVal)
#retLine.set_color()
lines.append(retLine)
ax.legend(lines, labels, loc='upper right')
ax.grid()
plt.show()
Działa to tylko dlatego, że twój 'stop' to 1 – Eric
Oczywiście 1 to najlepsza wartość. Jeśli chcesz uzyskać większy zakres kolorów, wystarczy zwiększyć 'number_of_lines'. A jeśli chcesz tylko część kolorów w paśmie, zmniejsz "stop" i zwiększ "start" w razie potrzeby. – Parousia
Szybkie pytanie: Jak dodać kolorbar zamiast legendy do fabuły? –