如何在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
相关产品推荐
相关产品推荐

