การสร้างเส้นหลายสีแบบรุ้งใน Matplotlib สามารถทำได้โดยกำหนดรายการสี 7 สี (VIBGYOR) แล้ววนลูปพลอตเส้นแต่ละเส้นด้วยสีที่ต่างกัน พร้อมปรับตำแหน่ง Y ให้แตกต่างกันเล็กน้อย
ขั้นตอนการทำงาน
- นำเข้า
numpyและmatplotlib.pyplot - สร้างข้อมูลแกน X ด้วย
np.linspace() - กำหนดรายการสี 7 สี:
["red", "orange", "yellow", "green", "blue", "indigo", "violet"] - วนลูปด้วย
for i in range(len(colors)): - พลอตเส้นแต่ละเส้นด้วย
plt.plot()โดย:- แกน Y:
x + i/20(เลื่อนขึ้นทีละนิด) c=colors[i]สีจากรายการlw=7ความหนาเส้นmarker='o'เครื่องหมายจุด
- แกน Y:
- แสดงผลด้วย
plt.show()
ตัวอย่างโค้ด
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(-1, 1, 10)
colors = ["red", "orange", "yellow", "green", "blue", "indigo", "violet"]
for i in range(len(colors)):
plt.plot(x, x + i/20, c=colors[i], lw=7, marker='o')
plt.show()
เทคนิคขั้นสูง: ใช้ Colormap
แทนที่จะกำหนดสีด้วยตนเอง สามารถใช้ Colormap ของ Matplotlib ได้:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-1, 1, 10)
n_lines = 20
colors = plt.cm.rainbow(np.linspace(0, 1, n_lines))
for i, color in enumerate(colors):
plt.plot(x, x + i/50, c=color, lw=3)
plt.show()
คำอธิบาย Colormap
plt.cm.rainbow- สีแบบรุ้งplt.cm.viridis- สีมาตรฐานวิทยาศาสตร์ (perceptually uniform)plt.cm.plasma,inferno,magma- สีสำหรับ heatmapnp.linspace(0, 1, n)- สร้างค่า 0-1 จำนวน n ค่า สำหรับ mapping สี
การประยุกต์ใช้
เหมาะสำหรับการแสดงข้อมูลหลายชุดในกราฟเดียว การวาดกราฟฟังก์ชันหลายฟังก์ชัน หรือการสร้างภาพประกอบทางวิทยาศาสตร์ที่ต้องการความสวยงามและความชัดเจน