热线电话:13121318867

登录
2019-01-25 阅读量: 767
如何在MultiIndex中格式化图例

我正在使用MultiIndex Column进行绘图。当我试图在图表中绘制这样的数据时(如下例所示),我会在图例中收到“(Semester1,Maths)”,“(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,Maths”而不是“(第一学期,数学)”?

#######分割线#####

可以在调用之前将列索引替换为所需的值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

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

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.set_axis(header.map(', '.join), axis=1, inplace=False).plot(kind='bar')

plt.show()

0.0000
1
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子