Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีแปลงตัวเลขเป็นสเกลสีใน Matplotlib


แมปค่าตัวเลขเป็นสีด้วย colormap

ใช้ Normalize และ ScalarMappable แปลงค่าตัวเลขเป็นสี

ขั้นตอน

  1. สร้างจุดข้อมูล x, y, c ด้วย NumPy
  2. แปลงเป็น Pandas DataFrame
  3. สร้าง figure ด้วย subplots()
  4. ดึง colormap hot
  5. ใช้ Normalize() ปรับค่าให้เป็น 0-1
  6. วาด scatter พร้อมสีจาก colormap ที่ normalize แล้ว
  7. ตั้งค่า xticks
  8. สร้าง ScalarMappable object สำหรับ colorbar
  9. สร้าง colorbar ด้วย colorbar()
  10. แสดงด้วย 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()

ผลลัพธ์

วิธีแปลงตัวเลขเป็นสเกลสีใน Matplotlib