ตัวอย่างนี้แสดงยอดขายบนแกนซ้ายและอัตราแปลง (Conversion Rate) บนแกนขวา โดยใช้ Axes.twinx() เพื่อเพิ่มแกน Y ที่สองและนำทั้งสองตัวชี้วัดมาเล่าในการ์ฟเดียว
import numpy as np
import matplotlib.pyplot as plt
months = ["Apr", "May", "Jun", "Jul", "Aug", "Sep"]
revenue = np.array([120, 140, 160, 180, 195, 210])
conversion = np.array([2.3, 2.5, 2.7, 2.9, 3.0, 3.2])
fig, ax1 = plt.subplots(figsize=(6.5, 4))
ax2 = ax1.twinx()
ax1.plot(months, revenue, marker="o", color="#2563eb", label="ยอดขาย")
ax2.plot(months, conversion, marker="s", color="#f97316", label="CVR")
ax1.set_ylabel("ยอดขาย (ล้านเยน)", color="#2563eb")
ax1.tick_params(axis="y", labelcolor="#2563eb")
ax2.set_ylabel("CVR (%)", color="#f97316")
ax2.tick_params(axis="y", labelcolor="#f97316")
ax1.set_title("แนวโน้มยอดขายและ Conversion Rate")
lines = ax1.get_lines() + ax2.get_lines()
labels = [line.get_label() for line in lines]
ax1.legend(lines, labels, loc="upper left")
ax1.grid(axis="y", alpha=0.3)
fig.tight_layout()
plt.show()

จุดที่ควรสังเกต #
- ให้สีเส้นและข้อความบนแกนนั้นสอดคล้องกัน เพื่อให้ผู้อ่านจับคู่แกนได้ทันที
- หากสเกลของสองตัวชี้วัดต่างกันมาก ลองทำมาตรฐานข้อมูลก่อน หรือแยกเป็นอีกกราฟหนึ่งหากเริ่มอ่านยาก
- อย่าใช้สองแกนพร่ำเพรื่อ ให้สงวนไว้สำหรับตัวชี้วัดที่ต้องดูความสัมพันธ์จริงๆ เพื่อลดความสับสน