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

วิธีตั้งค่า Scale เดียวกัน (Shared Scale) สำหรับ Subplots ใน Matplotlib

ภาพรวม

เมื่อสร้างหลาย subplots แนวตั้ง มักต้องการให้แกน X ใช้ scale เดียวกัน (shared X-axis) เพื่อเปรียบเทียบง่าย ใช้พารามิเตอร์ sharex

ขั้นตอนการทำงาน

  • กำหนดขนาดฟิกเกอร์
  • สร้าง figure
  • เพิ่ม subplot แรก ax1 = fig.add_subplot(2, 1, 1)
  • เพิ่ม subplot ที่สอง ax2 = fig.add_subplot(2, 1, 2, sharex=ax1)
  • พลอตข้อมูลบน ax1 และ ax2
  • แสดงผล

ตัวอย่างโค้ด

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2, sharex=ax1)

t = np.linspace(-5, 5, 100)
ax1.plot(t, np.sin(2 * np.pi * t), color='red', lw=4)
ax2.plot(t, np.cos(2 * np.pi * t), color='orange', lw=4)

plt.show()

ผลลัพธ์

2 Subplots ซ้อนกัน แกน X ร่วมกัน (zoom/pan ตัวเดียวควบคุมทั้งคู่)

วิธีตั้งค่า Scale เดียวกัน (Shared Scale) สำหรับ Subplots ใน Matplotlib วิธีตั้งค่า Scale เดียวกัน (Shared Scale) สำหรับ Subplots ใน Matplotlib

รูปแบบอื่นๆ

  • plt.subplots(2, 1, sharex=True) – สร้างพร้อมกัน sharex ทั้งคู่
  • sharey=True – share แกน Y แทน
  • sharex='col', sharey='row' – share ตามคอลัมน์/แถว
  • ใช้ fig.align_xlabels() ซ่อน tick labels ที่ซ้ำซ้อน