2015-07-30 17 views
23

Tôi là một chút nhầm lẫn về cách mã này hoạt động:Làm thế nào để tôi nhận được nhiều subplots trong matplotlib?

fig, axes = plt.subplots(nrows=2, ncols=2) 
plt.show() 

Làm thế nào để vả, trục làm việc trong trường hợp này? Nó làm gì?

Cũng tại sao không làm việc này để làm điều tương tự:

fig = plt.figure() 
axes = fig.subplots(nrows=2, ncols=2) 

Cảm ơn

Trả lời

39

Có một số cách để thực hiện. Phương thức subplots tạo hình cùng với các ô con được lưu trữ trong mảng ax. Ví dụ:

import matplotlib.pyplot as plt 

x = range(10) 
y = range(10) 

fig, ax = plt.subplots(nrows=2, ncols=2) 

for row in ax: 
    for col in row: 
     col.plot(x, y) 

plt.show() 

enter image description here

Tuy nhiên, một cái gì đó như thế này cũng sẽ làm việc, nó không phải như vậy "sạch" mặc dù kể từ khi bạn đang tạo ra một nhân vật với ô phụ và sau đó thêm trên đầu trang của họ:

fig = plt.figure() 

plt.subplot(2, 2, 1) 
plt.plot(x, y) 

plt.subplot(2, 2, 2) 
plt.plot(x, y) 

plt.subplot(2, 2, 3) 
plt.plot(x, y) 

plt.subplot(2, 2, 4) 
plt.plot(x, y) 

plt.show() 

enter image description here

+0

Thay vì 'âm mưu (x, y) 'Tôi có cốt truyện của tôi đến từ một người sử dụng được xác định chức năng, mà tạo ra một đồ thị với networkx. Làm thế nào để sử dụng nó? – Sigur

7

đọc tài liệu: matplotlib.pyplot.subplots

pyplot.subplots() trả về một tuple fig, ax được giải nén trong hai biến sử dụng ký hiệu

fig, axes = plt.subplots(nrows=2, ncols=2) 

fig = plt.figure() 
axes = fig.subplots(nrows=2, ncols=2) 

không hoạt động vì subplots() là một chức năng trong pyplot không phải là một thành viên của đối tượng Figure.

2

Bạn có thể quan tâm trong thực tế là như các phiên bản matplotlib 2.1 mã thứ hai từ câu hỏi làm fi ne là tốt.

Từ change log:

Hình lớp hiện nay có phương pháp subplots Lớp Hình bây giờ có một ô phụ() phương pháp mà cư xử giống như pyplot.subplots() nhưng trên một nhân vật đang tồn tại.

Ví dụ:

import matplotlib.pyplot as plt 

fig = plt.figure() 
axes = fig.subplots(nrows=2, ncols=2) 

plt.show() 
Các vấn đề liên quan