绘制足球联赛积分柱状图触发ValueError: shape mismatch报错求助
报错原因与修复方案
错误点梳理
- 基础语法错误:
import关键字首字母错误大写,导入numpy定义别名为np后调用时错写为no;读取的表格变量命名为Table,取积分列时错写为小写的table;PTS作为列名字符串未加引号,会被识别为未定义变量。 - 核心形状不匹配错误:你的足球联赛积分榜仅有12行数据,
Table['PTS']只有12个积分值,但你为x轴传入的np.arange(1,21)是包含1-20的20个数值,x轴和高度值的长度不一致,无法一一对应绘制柱状图,因此触发该报错。
修正后代码
import pandas as pd import numpy as np import matplotlib.pyplot as plt Table = pd.read_csv(r'c:\..\..\data\Table.csv') # x轴长度和积分列长度保持一致 plt.bar(x=np.arange(1, len(Table)+1), height=Table['PTS']) plt.show()
可选优化
如果需要x轴展示对应球队名称,可以把x参数替换为球队名列,示例:
plt.bar(x=Table['team_name'], height=Table['PTS']) # 避免球队名过长重叠 plt.xticks(rotation=45) plt.show()
内容的提问来源于stack exchange,提问作者Adamson Agada
相关产品推荐
相关产品推荐

