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

วิธีพล็อตด้วย Scale ต่างกันใน Matplotlib

การพล็อตข้อมูลสองชุดที่มี Scale ต่างกัน (Dual Y-axis)

ใช้ ax.twinx() สร้าง axes ที่สองใช้แกน x เดียวกัน แต่ง y แยกกัน

ขั้นตอนหลัก

  • ตั้งค่าขนาดรูปและ padding
  • สร้างข้อมูล t, data1 (exp), data2 (sin)
  • สร้าง figure และ axes แรก ax1
  • ตั้งค่า labels และ plot data1 บน ax1 ตั้งสี label ด้วย tick_params
  • สร้าง axes ที่สอง ax2 = ax1.twinx()
  • ตั้งค่า labels และ plot data2 บน ax2 สีต่างกัน
  • แสดงผลด้วย show()

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

import numpy as np
import matplotlib.pyplot as plt

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

t = np.arange(0.01, 10.0, 0.01)
data1 = np.exp(t)
data2 = np.sin(2 * np.pi * t)

fig, ax1 = plt.subplots()
color = 'red'
ax1.set_xlabel('time (s)')
ax1.set_ylabel('exp', color=color)
ax1.plot(t, data1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx()
color = 'blue'
ax2.set_ylabel('sin', color=color)
ax2.plot(t, data2, color=color)
ax2.tick_params(axis='y', labelcolor=color)

plt.show()

คำอธิบาย

twinx() สร้าง axes ใหม่ที่ share x-axis แตก y-axis แยกกัน ใช้สำหรับข้อมูลที่ scale ต่างมาก