You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matplotlib图例中将DataFrame属性值映射为自定义字符串

图例自定义修改方案

你可以直接替换plt.legend()的入参为自定义标签列表即可,pd.crosstab返回结果的列默认按cholesterol字段的取值升序排列,对应1、2、3的顺序,按对应顺序传入标签即可生效,修改后完整代码如下:

pd.crosstab(df['cardio'], df['cholesterol']).plot(kind = 'bar') 
plt.xlabel('0 = 无心脏病, 1 = 存在心脏病')
plt.ylabel('人数')
# 按1→正常、2→高于正常、3→远高于正常的顺序传入标签
plt.legend(['正常', '高于正常', '远高于正常'])
plt.title("胆固醇对应分布情况")
plt.show()

如果想要避免顺序出错,也可以先对交叉表的列重命名后再绘图,后续不需要额外设置图例就会自动显示自定义名称:

# 先构造交叉表并重命名列
cross_df = pd.crosstab(df['cardio'], df['cholesterol'])
cross_df.columns = ['正常', '高于正常', '远高于正常']
# 直接绘图自动应用列名作为图例
cross_df.plot(kind='bar')
plt.xlabel('0 = 无心脏病, 1 = 存在心脏病')
plt.ylabel('人数')
plt.title("胆固醇对应分布情况")
plt.show()

内容的提问来源于stack exchange,提问作者user9159966

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:54:06