rag*_*esz 5 python matplotlib multi-index
我可以使用以下代码在图上绘制我的单头数据框:
plt.table(cellText=df.round(4).values, cellLoc='center', bbox=[0.225, 1, 0.7, 0.15],
rowLabels=[' {} '.format(i) for i in df.index], rowLoc='center',
rowColours=['silver']*len(df.index), colLabels=df.columns, colLoc='center',
colColours=['lightgrey']*len(df.columns), colWidths=[0.1]*len(df.columns))
Run Code Online (Sandbox Code Playgroud)
我的问题是:是否可以绘制具有多索引列的数据框?我想要两个单独的“行”用于我的多标题,因此一个标题行中的元组不好。如果可能的话,我想在两个标题上应用上述样式(颜色)(为多标题设置不同的颜色会很棒)。
这是一个示例数据框:
df = pd.DataFrame([[11, 22], [13, 23]],
columns=pd.MultiIndex.from_tuples([('main', 'sub_1'), ('main', 'sub_2')]))
Run Code Online (Sandbox Code Playgroud)
结果:
main
sub_1 sub_2
0 11 22
1 13 23
Run Code Online (Sandbox Code Playgroud)
好的,我使用了一个“技巧”来解决这个问题:绘制一个只有一个单元格的新表格,没有列标题,也没有行索引。唯一的单元格值是原始顶部标题。并将这个新表放在旧(单标题)表的顶部。(这不是最好的解决方案,但有效......)。
代码:
df = pd.DataFrame([[11, 22], [13, 23]], columns=['sub_1', 'sub_2'])
# First plot single-header dataframe (headers = ['sub_1', 'sub_2'])
plt.table(cellText=df.round(4).values, cellLoc='center', bbox=[0.225, 1, 0.7, 0.15],
rowLabels=[' {} '.format(i) for i in df.index], rowLoc='center',
rowColours=['silver']*len(df.index), colLabels=df.columns, colLoc='center',
colColours=['lightgrey']*len(df.columns), colWidths=[0.1]*len(df.columns))
# Then plot a new table with one cell (value = 'main')
plt.table(cellText=[['main']], cellLoc='center', bbox=[0.225, 1.15, 0.7, 0.05],
cellColours=[['Lavender']])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4495 次 |
最近记录: |