Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Ánh xạ giá trị sang màu trong Matplotlib

Để ánh xạ giá trị sang tuple màu (red, green, blue) trong Matplotlib, ta làm theo các bước sau:

Các bước thực hiện

  • Tạo danh sách giá trị từ 1.00 đến 2.00, số lượng 10.
  • Chuẩn hóa tuyến tính dữ liệu vào khoảng vmin, vmax.
  • Tạo đối tượng ánh xạ dữ liệu scalar sang RGBA.
  • Lặp qua các giá trị để ánh xạ màu.
  • In giá trị cùng với thành phần red, green, blue đã ánh xạ.

Ví dụ

import numpy as np
from matplotlib import cm, colors

values = np.linspace(1.0, 2.0, 10)
norm = colors.Normalize(vmin=1.0, vmax=2.0, clip=True)
mapper = cm.ScalarMappable(norm=norm, cmap=cm.Greys_r)

for value in values:
    print("%.2f" % value, "=",
          "red:%.2f" % mapper.to_rgba(value)[0],
          "green:%.2f" % mapper.to_rgba(value)[1],
          "blue:%.2f" % mapper.to_rgba(value)[2])

Kết quả

1.00 = red:0.00 green:0.00 blue:0.00
1.11 = red:0.13 green:0.13 blue:0.13
1.22 = red:0.28 green:0.28 blue:0.28
1.33 = red:0.41 green:0.41 blue:0.41
1.44 = red:0.53 green:0.53 blue:0.53
1.56 = red:0.66 green:0.66 blue:0.66
1.67 = red:0.78 green:0.78 blue:0.78
1.78 = red:0.87 green:0.87 blue:0.87
1.89 = red:0.95 green:0.95 blue:0.95
2.00 = red:1.00 green:1.00 blue:1.00