我正在使用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()








暂无数据