Làm cách nào để thay đổi kích thước hình với các ô con?


287

Tôi đã xem qua ví dụ này trong trang web Matplotlib. Tôi đã tự hỏi nếu nó có thể tăng kích thước con số.

Tôi đã thử với

f.figsize(15,15)

nhưng nó không làm gì cả

Câu trả lời:


525

Nếu bạn đã có đối tượng hình sử dụng:

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

Nhưng nếu bạn sử dụng lệnh .subplots () (như trong các ví dụ bạn đang hiển thị) để tạo một hình mới, bạn cũng có thể sử dụng:

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

12
cũng có fig.set_size_inchesđể thiết lập chiều cao và chiều rộng cùng nhau
Francesco Montesano

1
Điều này không hoạt động, bạn có thể đặt chiều cao thành bất cứ điều gì bạn muốn, nhưng nó sẽ không bao giờ lớn hơn màn hình của bạn.

2
Điều này không phải làm bất cứ điều gì với màn hình của bạn. Điều gì nếu bạn xuất ra một png? Bạn đang nói nó không bao giờ có thể lớn hơn độ phân giải màn hình? Đó là sự kết hợp kích thước tính bằng inch với dpi xác định kích thước tính bằng pixel.
Rutger Kassies

bao gồm figsize trong lệnh gọi tới subplots () dường như không hoạt động. gọi f.set_figheight, tuy nhiên, không hoạt động.
Vicki B

Có thể thay đổi kích thước subplot chính nó mà không thay đổi figsize?
Alexis.Rolland

38

Hoặc, tạo một figure()đối tượng bằng cách sử dụng figsizeđối số và sau đó sử dụng add_subplotđể thêm các ô con của bạn. Ví dụ

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:')

Ví dụ đơn giản

Lợi ích của phương pháp này là cú pháp gần với các lệnh gọi subplot()thay vì subplots(). Ví dụ, các ô con dường như không hỗ trợ sử dụng a GridSpecđể kiểm soát khoảng cách của các ô con, nhưng cả hai subplot()và đều add_subplot()làm được.


10
Bất kỳ khả năng để thêm 'kích thước' vào ax và ax2 riêng biệt?
M. Gopal

2
Nếu tôi hiểu chính xác bạn muốn đặt kích thước tương đối của hai trục? Trong trường hợp đó, tôi nghĩ rằng bạn đang tìm kiếm câu hỏi này: stackoverflow.com/questions/10388462/iêu
aquirdturtle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.