0
我有一個數據框,並將數據框分成三個子集。每個子集有3到4行數據。在將數據幀分成三個子集後,我使用Matplotlib繪製它們。使用Matplotlib繪製Pandas中的數據框的子集
我有的問題是我無法創建一個繪圖使用切片DataFrame繪製每個子圖的情節。例如,在一組中的三個組中,我只繪製了其中一個圖(最後一個子圖),其中沒有其他兩個圖組初始集的數據。它看起來像'r'值不會傳遞給所有三個子圖的'r.plot'。
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD'))
df['key1'] = 0
df.key1.iloc[0:3] = 1
df.key1.iloc[3:7] = 2
df.key1.iloc[7:] = 3
df_grouped = df.groupby('key1')
for group_name, group_value in df_grouped:
rows, columns = group_value.shape
fig, axes = plt.subplots(rows, 1, sharex=True, sharey=True, figsize=(15,20))
for i,r in group_value.iterrows():
r = r[0:columns-1]
r.plot(kind='bar', fill=False, log=False)
感謝您提供隨機數據的可再現示例。然而,我不能完全重現這一點,因爲在本例中沒有定義'rows'變量。你能否澄清'rows'的價值? –
這些行是由隨機數生成器創建的索引A,B,C和D中的值。此代碼應該生成一個輸出,其中每個子集中只填寫一個子圖。第一個子集由3行數據組成,第二個子集包含4行,第三個子集包含三行數據。每行數據有4個值,索引爲a,b,c和d。 –
對不起,我應該更清楚。你可以在這一行中定義你的'rows'變量:'rows,columns = group_value.shape',它在你嘗試使用這行後會出現三行:'fig,axes = plt.subplots(rows, 1,sharex = True,sharey = True,figsize =(15,20))''。爲了讓這個代碼示例運行,'rows'必須在使用之前定義。這是我試圖運行你的代碼的錯誤。 –