คุณสามารถพล็อตพล็อตย่อยหลาย ๆ เฟรมข้อมูลแพนด้าโดยใช้ matplotlib ด้วยเคล็ดลับง่ายๆในการสร้างรายการเฟรมข้อมูลทั้งหมด จากนั้นใช้ for loop สำหรับการพล็อตเรื่องย่อย
รหัสการทำงาน:
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
การใช้รหัสนี้คุณสามารถลงจุดย่อยในการกำหนดค่าใด ๆ คุณต้องการเพียงแค่กำหนดจำนวนแถวและจำนวนคอลัมน์nrow
ncol
นอกจากนี้คุณต้องสร้างรายการกรอบข้อมูลdf_list
ที่คุณต้องการพล็อต
.subplots()
ส่งคืนระบบพิกัดที่แตกต่างกันอย่างน่ารำคาญโดยขึ้นอยู่กับขนาดของอาร์เรย์ของพล็อตย่อยที่คุณกำลังสร้าง ดังนั้นหากคุณกลับมาย่อย ๆ ที่พูดnrows=2, ncols=1
คุณจะต้องดัชนีแกนเป็นและaxes[0]
axes[1]
ดูstackoverflow.com/a/21967899/1569221