ภาพรวม
สาธิตการพลอตหลายเส้นใน Loop ให้ Marker และ Line มีสีตรงกัน โดยใช้ Iterator สำหรับ Marker
ขั้นตอน
- ตั้งค่า
m, nและข้อมูล X - สร้าง Figure, Subplot
- สร้าง Marker Cycle ด้วย
itertools.cycle() - วนลูป พลอต Marker ก่อน (
linestyle='') แล้วค่อย Line (linestyle='-') ด้วย Marker เดียวกัน
ตัวอย่างโค้ด
import numpy as np
import itertools
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
m = 5
n = 5
x = np.zeros(shape=(m, n))
plt.figure()
plt.clf()
plt.subplot(111)
marker = itertools.cycle(('o', 'v', '^', '<', '>', 's', '8', 'p'))
for i in range(1, n):
x = np.dot(i, [1, 1.1, 1.2, 1.3])
y = x ** 2
plt.plot(x, y, linestyle='', markeredgecolor='none', marker=next(marker), alpha=1)
plt.plot(x, y, linestyle='-')
plt.show()
ผลลัพธ์
กราฟ 4 เส้น (i=1..4) แต่ละเส้นมี Marker และ Line สีเดียวกัน Marker ต่างกัน
วิธีที่ดีกว่า (Auto Color Cycle)
for i in range(1, n):
x = np.dot(i, [1, 1.1, 1.2, 1.3])
y = x ** 2
plt.plot(x, y, marker=next(marker), linestyle='-') # สีอัตโนมัติตรงกัน
Matplotlib จะจัดการสี ให้ Marker และ Line ตรงกันอัตโนมัติ