Bạn có thể vẽ nhiều ô con của nhiều khung dữ liệu gấu trúc bằng cách sử dụng matplotlib với một thủ thuật đơn giản là tạo danh sách tất cả khung dữ liệu. Sau đó, sử dụng vòng lặp for để vẽ các âm mưu phụ.
Mã làm việc:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# dataframe sample data
df1 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
df2 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
df3 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
df4 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
df5 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
df6 = pd.DataFrame(np.random.rand(10,2)*100, columns=['A', 'B'])
#define number of rows and columns for subplots
nrow=3
ncol=2
# make a list of all dataframes
df_list = [df1 ,df2, df3, df4, df5, df6]
fig, axes = plt.subplots(nrow, ncol)
# plot counter
count=0
for r in range(nrow):
for c in range(ncol):
df_list[count].plot(ax=axes[r,c])
count=+1
Sử dụng mã này, bạn có thể vẽ các lô phụ trong bất kỳ cấu hình nào. Bạn chỉ cần xác định số hàng nrow
và số cột ncol
. Ngoài ra, bạn cần lập danh sách các khung dữ liệu df_list
mà bạn muốn vẽ biểu đồ.
.subplots()
trả về các hệ tọa độ khác nhau tùy thuộc vào kích thước của mảng ô con bạn đang tạo. Vì vậy, nếu bạn trả về các ô con, ví dụnrows=2, ncols=1
, bạn sẽ cần lập chỉ mục các trục làaxes[0]
vàaxes[1]
. Xem stackoverflow.com/a/21967899/1569221