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

处理Twitter情感数据集时Matplotlib饼图标签与数值不匹配问题

问题原因

标签错位的核心是两个方法返回的序列顺序不一致:

  • tweets_df["twt_sentiment"].unique() 按值在数据集里首次出现的顺序返回标签
  • 默认value_counts()按计数值降序返回统计结果,就算添加sort=False也只是按值的首次出现顺序倒排,依然不能保证和unique的顺序完全匹配

修改后的代码

sns.set(font_scale=1.5)
plt.style.use("seaborn-poster")

# 先剔除情感字段为空的无效记录
tweets_df = tweets_df.dropna(subset=['twt_sentiment'])

fig, axes = plt.subplots(1, 2, figsize=(20, 10), dpi=100)

# 柱状图展示数量分布
sns.countplot(x = tweets_df["twt_sentiment"], ax=axes[0])
# 同步获取统计值和对应标签,避免顺序错位
sentiment_stat = tweets_df["twt_sentiment"].value_counts()

# 饼图展示占比分布
axes[1].pie(sentiment_stat.values,
            autopct="%1.0f%%",
            labels=sentiment_stat.index,
            startangle=90,
            explode=tuple([0.1] * len(sentiment_stat)))

fig.suptitle("Distribution of Tweets", fontsize=20)
plt.show()

修改说明

  1. 新增空值过滤逻辑,避免twt_sentiment为NaN的无效记录干扰统计结果
  2. 直接将value_counts()的统计结果存入变量,同步取数值和对应索引作为饼图的输入,保证标签和数值完全匹配
  3. 补全plt.style.use的前缀plt.,适配标准matplotlib导入规则
  4. 给countplot补充x=参数,适配高版本seaborn的传参要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:24:01