Đây là một ví dụ
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
t = np.arange(100)
plt.scatter(x, y, c=t)
plt.show()
Ở đây bạn đang thiết lập màu dựa trên chỉ số, t
chỉ là một mảng của [1, 2, ..., 100]
.
Có lẽ một ví dụ dễ hiểu hơn là đơn giản hơn một chút
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
plt.scatter(x, y, c=t)
plt.show()
Lưu ý rằng mảng bạn truyền vào c
không cần có bất kỳ thứ tự hoặc kiểu cụ thể nào, tức là nó không cần được sắp xếp hoặc số nguyên như trong các ví dụ này. Quy trình vẽ biểu đồ sẽ chia tỷ lệ bản đồ màu sao cho các giá trị tối thiểu / tối đa c
tương ứng với phần dưới / trên cùng của bản đồ màu.
Colormaps
Bạn có thể thay đổi bản đồ màu bằng cách thêm
import matplotlib.cm as cm
plt.scatter(x, y, c=t, cmap=cm.cmap_name)
Nhập matplotlib.cm
là tùy chọn vì bạn cũng có thể gọi các bản đồ màu cmap="cmap_name"
. Có một trang tham khảo gồm các bản đồ màu hiển thị mỗi bản đồ trông như thế nào. Cũng nên biết rằng bạn có thể đảo ngược một bản đồ màu bằng cách chỉ cần gọi nó là cmap_name_r
. Vì vậy
plt.scatter(x, y, c=t, cmap=cm.cmap_name_r)
plt.scatter(x, y, c=t, cmap="cmap_name_r")
sẽ làm việc. Ví dụ là "jet_r"
hoặc cm.plasma_r
. Đây là một ví dụ với viridis bản đồ màu 1.5 mới:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(100)
y = x
t = x
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.scatter(x, y, c=t, cmap='viridis')
ax2.scatter(x, y, c=t, cmap='viridis_r')
plt.show()
Thanh màu
Bạn có thể thêm một thanh màu bằng cách sử dụng
plt.scatter(x, y, c=t, cmap='viridis')
plt.colorbar()
plt.show()
Lưu ý rằng nếu bạn đang sử dụng các số liệu và biểu đồ con một cách rõ ràng (ví dụ fig, ax = plt.subplots()
hoặc ax = fig.add_subplot(111)
), việc thêm thanh màu có thể liên quan nhiều hơn một chút. Bạn có thể tìm thấy các ví dụ tốt ở đây cho một thanh màu ô con duy nhất và đây cho 2 ô màu con 1 ô màu .
plt.colorbar()
lệnh.