カラーマップを使用してランタイムにスカラー値を指定してmatplotlibのラインの色を設定するにはどうすればいいですか(たとえばjet
)?私はここでいくつかのアプローチを試してみました。私は困惑していると思います。 values[]
は、スカラーのストートされた配列です。曲線は1次元配列の集合であり、ラベルはテキスト文字列の配列です。各アレイの長さは同じです。カラーマップを使用して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()
これはあなたの 'stop'が1であるためにのみ有効です。 – Eric
もちろん1が最適です。より広い範囲の色が必要な場合は、 'number_of_lines'を増やすだけです。また、バンドの一部の色だけが必要な場合は、必要に応じて 'stop'を減らして' start'を増やします。 – Parousia
簡単な質問:凡例の代わりにカラーバーをプロットに追加するにはどうすればいいですか? –