กราฟสองแกนสำหรับตัวชี้วัดคนละหน่วย

Visualize

กราฟสองแกนสำหรับตัวชี้วัดคนละหน่วย

Created: Last updated: Read time: 1 min

ตัวอย่างนี้แสดงยอดขายบนแกนซ้ายและอัตราแปลง (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()

ใช้ Axes.twinx() เพื่อเพิ่มแกนขวาแล้วแสดงยอดขายกับอัตราแปลงพร้อมกัน

จุดที่ควรสังเกต #

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