ฉันจะเปลี่ยนขนาดรูปด้วยแผนการย่อยได้อย่างไร


คำตอบ:


528

หากคุณมีวัตถุรูปใช้แล้ว:

f.set_figheight(15)
f.set_figwidth(15)

แต่ถ้าคุณใช้คำสั่ง. subplots () (ดังตัวอย่างที่คุณกำลังแสดง) เพื่อสร้างรูปใหม่คุณยังสามารถใช้:

f, axs = plt.subplots(2,2,figsize=(15,15))

12
นอกจากนี้ยังมีfig.set_size_inchesการตั้งค่าความสูงและความกว้างด้วยกัน
Francesco Montesano

1
วิธีนี้ใช้ไม่ได้คุณสามารถตั้งความสูงตามที่คุณต้องการได้ แต่จะไม่ใหญ่กว่าจอมอนิเตอร์ของคุณ

2
สิ่งนี้ไม่ต้องทำอะไรกับจอภาพของคุณ เกิดอะไรขึ้นถ้าคุณส่งออกไปยัง png? คุณกำลังบอกว่ามันไม่สามารถมีขนาดใหญ่กว่าความละเอียดหน้าจอ? มันคือการรวมกันของขนาดนิ้วกับ dpi ที่กำหนดขนาดเป็นพิกเซล
Rutger Kassies

รวมถึง figsize ในการเรียกไปยัง subplots () ดูเหมือนจะไม่ทำงาน อย่างไรก็ตามการเรียก f.set_figheight ใช้งานได้
วิคกี้บี

เป็นไปได้หรือไม่ที่จะเปลี่ยนขนาดของแผนย่อยเองโดยไม่ต้องเปลี่ยนมะเดื่อ?
Alexis.Rolland

38

อีกวิธีหนึ่งคือสร้างfigure()วัตถุโดยใช้figsizeอาร์กิวเมนต์แล้วใช้add_subplotเพื่อเพิ่มแผนการย่อยของคุณ เช่น

import matplotlib.pyplot as plt
import numpy as np

f = plt.figure(figsize=(10,3))
ax = f.add_subplot(121)
ax2 = f.add_subplot(122)
x = np.linspace(0,4,1000)
ax.plot(x, np.sin(x))
ax2.plot(x, np.cos(x), 'r:')

ตัวอย่างง่ายๆ

ประโยชน์ของวิธีนี้คือไวยากรณ์คือใกล้ชิดกับสายของแทนsubplot() subplots()ดูเหมือนว่าย่อยจะไม่สนับสนุนการใช้GridSpecสำหรับการควบคุมระยะห่างของย่อย แต่ทั้งคู่subplot()และadd_subplot()ทำ


10
มีความเป็นไปได้ที่จะเพิ่ม 'ขนาด' ลงในขวานและ ax2 แยกกันไหม
M. Gopal

2
หากฉันเข้าใจถูกต้องคุณต้องการกำหนดขนาดสัมพัทธ์ของสองแกน ในกรณีนั้นฉันคิดว่าคุณกำลังมองหาคำถามนี้: stackoverflow.com/questions/10388462/ …
aquirdturtle
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.