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

解决seaborn/matplotlib绘制x轴分组柱状图时的ValueError报错

报错原因

你代码报错的核心是sns.catplot的y参数传入了df.groupby(['type']).count()这个多列Series对象,seaborn内部做逻辑判断时无法直接对Series整体做布尔值判定,因此抛出该错误。
你要实现按type分组、不同room分类的计数柱状图,不需要提前手动做分组聚合,直接用seaborn的count类型catplot即可自动统计分组频数。


修改后可运行代码

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

d = {'type': ['House', 'Boat', 'Bus', 'Bus', 'Boat'], 'room': ['private', 'public', 'public', 'private', 'nothing']}
df = pd.DataFrame(data=d)

g = sns.catplot(
    data=df, kind="count",
    x='type', hue="room",
    palette="dark", alpha=.6, height=6
)
g.despine(left=True)
g.set_axis_labels("", "Counts")
g.legend.set_title("")
plt.show()

核心修改说明

  • 把原来的kind="bar"改为kind="count",catplot的count类型会自动按x和hue的分组统计样本数量,y轴自动对应计数值
  • 移除了错误的y=df.groupby(['type']).count()参数,无需手动指定聚合后的y值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:57:02