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

Python柱状图无法绘制,报错“no numeric data to plot”

问题解决:柱状图绘制报错“no numeric data to plot”

问题根源

你的代码中,将统计得到的数值型counts通过res = counts.astype(str)转为了字符串,后续通过字符串拼接、拆分生成的result2里,Count对应的都是字符串值。Pandas的plot.bar要求y轴数据必须是数值类型(int/float),因此触发了“no numeric data to plot”错误。

修复方案

方案1:简化代码,直接构建数值型Count列

替换原有DataFrame构建的冗余代码,直接用np.unique返回的unique和counts创建DataFrame,counts本身就是数值类型,无需额外转换:

unique, counts = np.unique(arr3, return_counts=True)
# 直接构建DataFrame,Count列自动为数值类型
df = pd.DataFrame({'Status': unique, 'Count': counts})
print(df)
# 绘制柱状图并显示
ax = df.plot.bar(x='Status', y='Count', rot=70)
plt.show()

方案2:保留原有流程,转换Count列类型

如果要保留原来的字符串拼接拆分逻辑,只需在生成DataFrame后,将Count列转为整数类型:

df = pd.DataFrame(result2,columns=['Status','Count'])
# 将Count列从字符串转为整数
df['Count'] = df['Count'].astype(int)
print(df)
ax = df.plot.bar(x='Status', y='Count', rot=70)
plt.show()

额外提示

原代码最后没有调用plt.show(),即使修复类型问题,也可能看不到绘制的图表,记得加上这一行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:43:13