Pandas:如何在多索引中格式化图例

2024-06-16 10:45:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在处理一个带有多索引列的绘图。当我试图在图表中绘制这些数据(如下面的例子)时,我会在图例中收到“(Semester1,mathematics)”、“(Semester1,Science)”等。在

import pandas as pd
import numpy as np

header = pd.MultiIndex.from_product([['Semester1','Semester2'],['Maths','Science']])
d=([[12,45,67,56],[78,89,45,67],[45,67,89,90],[67,44,56,55]])


df = pd.DataFrame(d,
                  index=['Alisa','Bobby','Cathrine','Jack'],
                  columns=header)
df.plot(kind='bar')

我知道手动设置图例文本是可能的,但是有没有一种方法可以将列用作一种变量,这样我就可以自动将图例调整为“Semester1,mathematics”格式而不是“(第1学期,数学)”?在

感谢您的支持!在


Tags: 数据import绘图dfas图表绘制例子
1条回答
网友
1楼 · 发布于 2024-06-16 10:45:45

在调用plot之前,可以用所需的值替换列索引:

In [650]: df.set_axis(header.map(', '.join), axis=1, inplace=False)
Out[650]: 
          Semester1, Maths  Semester1, Science  Semester2, Maths  Semester2, Science
Alisa                   12                  45                67                  56
Bobby                   78                  89                45                  67
Cathrine                45                  67                89                  90
Jack                    67                  44                56                  55

^{pr2}$

enter image description here

相关问题 更多 >