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

การเปลี่ยนสเกล Imshow ใน Matplotlib โดยไม่ยืดรูปภาพ

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

  • กำหนดขนาดรูปภาพและปรับระยะห่างรอบๆ subplots

  • สร้างข้อมูลสุ่มขนาด 4×4

  • แสดงข้อมูลเป็นภาพด้วย imshow()

  • ใช้พารามิเตอร์ extent จับคู่พิกัดพิกเซลกับพิกัดข้อมูล

  • ตั้งค่า aspect ratio ด้วย aspect=4 หรือ aspect='auto' เพื่อไม่ให้รูปยืด

  • แสดงรูปภาพด้วยเมธอด show()

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

import numpy as np
from matplotlib import pyplot as plt

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

data = np.random.rand(4, 4)
plt.imshow(data, origin='lower', extent=[-4, 4, -1, 1], aspect=4)
plt.show()

ผลลัพธ์

ภาพ 4x4 พิกเซล แสดงในพื้นที่ข้อมูล x: -4 ถึง 4, y: -1 ถึง 1 Aspect ratio = 4 ทำให้พิกเซลเป็นสี่เหลี่ยมจัตุรัส ไม่ยืดหด

คำอธิบาย: ค่า Default ของ imshow คือ aspect=1 (พิกเซลสี่เหลี่ยมจัตุรัสใน Data Coordinates) การตั้ง aspect=4 ทำให้ 1 หน่วย x = 4 หน่วย y aspect='auto' ให้ขยายเต็ม Axes