Python 如何对数据帧字典进行子绘图
我想从字典中分包16个数据帧,但我尝试了for循环,但不知道如何使用DictDataFrame完成代码:Python 如何对数据帧字典进行子绘图,python,pandas,matplotlib,Python,Pandas,Matplotlib,我想从字典中分包16个数据帧,但我尝试了for循环,但不知道如何使用DictDataFrame完成代码: DataFrameDict.keys() : dict_keys([1, 10, 20, 30, 40, 47, 100, 15, 25, 35, 45, 50, 5, 105, 55, 0]) 因此,我想为字典中的每个数据帧对每个列的持续时间(Min)进行子绘图,但我不知道如何处理:DataFrameDict[key]['Duration(Min)] 尝试展平轴阵列并使用zip循环: f
DataFrameDict.keys() :
dict_keys([1, 10, 20, 30, 40, 47, 100, 15, 25, 35, 45, 50, 5, 105, 55, 0])
因此,我想为字典中的每个数据帧对每个列的持续时间(Min)进行子绘图,但我不知道如何处理:DataFrameDict[key]['Duration(Min)]
尝试展平轴阵列并使用zip循环:
fig = plt.figure()
fig, axes = plt.subplots(nrows=4, ncols=4)
for (key, data), ax in zip(DataFrameDict.items(), axes.ravel()):
data['Duration (Min)'].plot(ax=ax)
ax.set_title(f'Data for {key}')
plt.show()
尝试展平轴阵列并使用zip循环:
fig = plt.figure()
fig, axes = plt.subplots(nrows=4, ncols=4)
for (key, data), ax in zip(DataFrameDict.items(), axes.ravel()):
data['Duration (Min)'].plot(ax=ax)
ax.set_title(f'Data for {key}')
plt.show()
- 使用
展平.ravel
相当常见。轴阵列
- 有关详细的说明,请参阅
将确保当要打印的项目数不能被列数平均整除时,有足够的行math.ceil
- 此
使用for loop
索引正确值,并使用idx
绘制每个数据帧,迭代枚举的key
dict键
- 用于绘制数据帧
将熊猫作为pd导入
将numpy导入为测试数据的np#
输入数学
#测试数据
行=10
键=已排序([1,10,20,30,40,47,100,15,25,35,45,50,5,105,55,0])
df_dict={key:pd.DataFrame({'a':np.random.randint(0,10,size=(行)),'b':np.random.randint(15,25,size=(行)),'Duration(Min)':np.random.randint(30,40,size=(行))}
#给定列数,确定行数
cols=4
行=math.ceil(len(key)/cols)
#创建具有多个轴的图形
图,轴=plt.子批次(nrows=行,ncols=列,figsize=(16,16))
#将轴从4x4阵列转换为16x1阵列
ax_数组=axes.ravel()
#遍历dataframe字典键并使用enumerate
对于idx,输入枚举(键):
df_dict[key]['Duration(Min)].plot(ax=ax_数组[idx],ylabel='Value',title=f'DataFrame:{key}'))
plt.紧_布局()
plt.show()
- 使用
展平.ravel
相当常见。轴阵列
- 有关详细的说明,请参阅
将确保当要打印的项目数不能被列数平均整除时,有足够的行math.ceil
- 此
循环遍历枚举的for循环
,使用dict键
从idx
索引正确的值,并使用ax_数组
绘制每个数据帧键
- 用于绘制数据帧
将熊猫作为pd导入
将numpy导入为测试数据的np#
输入数学
#测试数据
行=10
键=已排序([1,10,20,30,40,47,100,15,25,35,45,50,5,105,55,0])
df_dict={key:pd.DataFrame({'a':np.random.randint(0,10,size=(行)),'b':np.random.randint(15,25,size=(行)),'Duration(Min)':np.random.randint(30,40,size=(行))}
#给定列数,确定行数
cols=4
行=math.ceil(len(key)/cols)
#创建具有多个轴的图形
图,轴=plt.子批次(nrows=行,ncols=列,figsize=(16,16))
#将轴从4x4阵列转换为16x1阵列
ax_数组=axes.ravel()
#遍历dataframe字典键并使用enumerate
对于idx,输入枚举(键):
df_dict[key]['Duration(Min)].plot(ax=ax_数组[idx],ylabel='Value',title=f'DataFrame:{key}'))
plt.紧_布局()
plt.show()
我有一个错误:ValueError:要解包的值太多(预期为2)@ThonyNadhir抱歉,应该是
.items()
。已更新。我有以下错误:ValueError:要解压缩的值太多(预期为2)@ThonyNadhir抱歉,应该是.items()
。更新。
fig = plt.figure()
fig, axes = plt.subplots(nrows=4, ncols=4)
for (key, data), ax in zip(DataFrameDict.items(), axes.ravel()):
data['Duration (Min)'].plot(ax=ax)
ax.set_title(f'Data for {key}')
plt.show()