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

直方图构建与Top5值提取:生成含名称的DataFrame并绘图

解决白方获胜Top5开局的DataFrame转换与直方图绘制问题

问题分析

你当前提取出的wwin是Series结构,且误用了seaborn.histplot(该函数用于连续数据的分布统计,不适合展示分类变量的计数),导致绘图结果不符合预期。需要先将Series转换为结构正确的DataFrame,再使用合适的绘图函数。

步骤1:生成符合要求的Top5 DataFrame

把提取出的Top5获胜开局Series转换为带明确列名的DataFrame:

# 将Series转换为结构化DataFrame
top5_white_wins = wwin.reset_index()
# 重命名列,让数据含义更清晰
top5_white_wins.columns = ['opening_name', 'win_count']

转换后的DataFrame结构如下:

opening_namewin_count
Sicilian Defense588
French Defense321
Italian Game233
Queen's Pawn Game214
King's Pawn Game205

步骤2:绘制正确的分类计数图

使用seaborn.barplot(而非histplot)绘制x轴为开局名称、y轴为获胜数量的图表:

import seaborn as sns
import matplotlib.pyplot as plt

# 绘制条形图展示分类计数
sns.barplot(data=top5_white_wins, x='opening_name', y='win_count')
# 旋转x轴标签,避免文字重叠
plt.xticks(rotation=45, ha='right')
# 设置图表标题与坐标轴标签
plt.title('白方获胜次数Top5开局')
plt.ylabel('获胜次数')
plt.xlabel('开局名称')
# 显示图表
plt.show()

关键说明

  • reset_index()会将原来Series的索引(开局名称)转换为DataFrame的一列,同时生成默认整数索引,让数据具备绘图所需的结构化格式。
  • histplot适合连续数值的分布统计,分类变量的计数展示必须用barplot,这是你之前绘图不符合预期的核心原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:52:19