2013-02-15 52 views
11

Tôi muốn tạo ra một âm mưu phụ từ dữ liệu 4 cột DataFrame thành 2 hàng và 2 cộtpython gấu trúc DataFrame âm mưu phụ trong các cột và các hàng

df =pd.DataFrame(np.random.randn(6,4),index=pd.date_range('1/1/2000',periods=6, freq='1h')) 

Tuy nhiên dưới đây sẽ cung cấp cho 4 hàng và 1 cột âm mưu

df.plot(use_index=False, title=f, subplots=True, sharey=True, figsize=(8, 6)) 

Cảm ơn.

+4

Bạn nên làm điều đó bằng tay, 'nhập khẩu matplotlib.pyplot như plt', sau đó một cái gì đó như' for i in df: plt.subplot (2,2, i + 1); plt.plot (df [ i]); ' –

+1

@ tesla1060 tôi cho rằng gấu trúc có thể cho phép một số loại đối số' figshape' ... –

Trả lời

9

Câu trả lời của cplcloud hoạt động, nhưng mã sau đây sẽ cung cấp cho bạn cấu trúc nhiều hơn một chút để bạn có thể bắt đầu định cấu hình thêm nếu bạn không cần vòng lặp.

fig, axes = plt.subplots(nrows=2, ncols=2) 
fig.set_figheight(6) 
fig.set_figwidth(8) 
df[0].plot(ax=axes[0,0], style='r', label='Series'); axes[0,0].set_title(0) 
df[1].plot(ax=axes[0,1]); axes[0,1].set_title(1) 
df[2].plot(ax=axes[1,0]); axes[1,0].set_title(2) 
df[3].plot(ax=axes[1,1]); axes[1,1].set_title(3) 
fig.tight_layout() 

Đã thêm một số ví dụ trên trục 0 để cho biết cách bạn có thể định cấu hình thêm nữa.

7

Trong phiên bản hiện tại của Pandas, DataFrame.plot có từ khóa layout cho mục đích này.

df.plot(subplots=True, layout=(2,2), ...) 
Các vấn đề liên quan