Làm thế nào để thiết lập màu của một dòng trong matplotlib với giá trị vô hướng được cung cấp tại thời gian chạy bằng cách sử dụng một bản đồ màu (nói jet
)? Tôi đã thử một vài cách tiếp cận khác nhau ở đây và tôi nghĩ rằng tôi đang bối rối. values[]
là một mảng vô số các vết sẹo. các đường cong là một tập hợp các mảng 1-d và các nhãn là một chuỗi các chuỗi văn bản. Mỗi mảng có cùng độ dài.Sử dụng Colormaps để đặt màu của đường kẻ trong 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()
Điều này chỉ hoạt động vì 'stop' của bạn là 1 – Eric
Tất nhiên 1 là giá trị tốt nhất. Nếu bạn muốn có một dải màu lớn hơn, tất cả những gì bạn cần làm là tăng 'number_of_lines'. Và trong trường hợp bạn chỉ muốn một phần của màu sắc trong ban nhạc bạn giảm 'stop' và tăng' bắt đầu' khi cần thiết. – Parousia
Câu hỏi nhanh: Cách thêm colorbar thay vì chú thích vào cốt truyện của bạn? –