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

如何让Matplotlib饼图显示房屋状况的原始分类文本而非数字?

解决饼图标签显示数字而非分类文本的问题

问题原因

你的condition_of_the_house列原本存储的是good、bad等文本分类,现在被转换成了1-5的数值编码,导致饼图标签显示数字。

解决方案

1. 恢复分类文本映射

先确认数值对应的文本分类(可参考数据集原始定义,常见映射比如1:Good, 2:Bad, 3:Excellent, 4:Fair, 5:Poor),用map函数将数值列转换回文本:

# 定义数值到文本的映射(根据实际数据集调整)
condition_mapping = {
    1: 'Good',
    2: 'Bad',
    3: 'Excellent',
    4: 'Fair',
    5: 'Poor'
}
df['condition_of_the_house'] = df['condition_of_the_house'].map(condition_mapping)

2. 优化饼图代码(避免标签顺序不匹配)

原代码用df.condition_of_the_house.unique()获取标签,可能出现计数和标签顺序不一致的问题,建议改用value_counts()的索引作为标签:

import matplotlib.pyplot as plt

condition_counts = df['condition_of_the_house'].value_counts()
explode = [0.1] * len(condition_counts)
explode[0] = 0.2  

plt.pie(condition_counts, labels=condition_counts.index, explode=explode, autopct="%1.1f%%")
plt.title('Condition of the house')
plt.legend()
plt.show()

3. 预防后续问题:读取数据时指定类型

如果是读取数据集时自动将分类列转为数值,下次读取时指定列类型为字符串或分类:

import pandas as pd
df = pd.read_csv('your_dataset_file.csv', dtype={'condition_of_the_house': str})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:47:41