แมปค่าตัวเลขเป็นสีด้วย colormap
ใช้ Normalize และ ScalarMappable แปลงค่าตัวเลขเป็นสี
ขั้นตอน
- สร้างจุดข้อมูล x, y, c ด้วย NumPy
- แปลงเป็น Pandas DataFrame
- สร้าง figure ด้วย subplots()
- ดึง colormap hot
- ใช้ Normalize() ปรับค่าให้เป็น 0-1
- วาด scatter พร้อมสีจาก colormap ที่ normalize แล้ว
- ตั้งค่า xticks
- สร้าง ScalarMappable object สำหรับ colorbar
- สร้าง colorbar ด้วย colorbar()
- แสดงด้วย show()
ตัวอย่างโค้ด
from matplotlib import pyplot as plt, colors
import numpy as np
import pandas as pd
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.arange(12)
y = np.random.rand(len(x)) * 20
c = np.random.rand(len(x)) * 3 + 1.5
df = pd.DataFrame({"x": x, "y": y, "c": c})
fig, ax = plt.subplots()
cmap = plt.cm.hot
norm = colors.Normalize(vmin=2.0, vmax=5.0)
ax.scatter(df.x, df.y, color=cmap(norm(df.c.values)))
ax.set_xticks(df.x)
sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
fig.colorbar(sm)
plt.show()
ผลลัพธ์
