gpt4 book ai didi

python - Pandas:如何在 MultiIndex 中格式化图例

转载 作者:行者123 更新时间:2023-12-03 01:55:08 24 4
gpt4 key购买 nike

我目前正在绘制带有多索引列的图。当我尝试在图表中绘制此类数据(如下例所示)时,我在图例中收到“(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')

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

感谢您的支持!

最佳答案

您可以在调用 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()

enter image description here

关于python - Pandas:如何在 MultiIndex 中格式化图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54356091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com