使用带标签的CSV文件绘制图表出现IndexError如何解决
问题修复方案
错误原因
- 你当前设置的
usecols=1仅会读取CSV的第2列(索引从0开始计数),但你尝试将返回结果解包给x、y两个变量,维度完全不匹配 - 低版本numpy处理单个整数类型的
usecols参数时,会将整数识别为可迭代对象遍历,对应你报错中遍历usecols时出现的索引越界问题 - 你的需求是读取LVL作为x轴、Highscore作为y轴,需要同时读取第0列和第1列两列数据
修复后的完整代码
from matplotlib import style import numpy as np import matplotlib.pyplot as plt def plot(): style.use('ggplot') x, y = np.loadtxt( 'highscore.csv', unpack=True, skiprows=1, usecols=(0, 1), # 改为同时读取第0列、第1列 delimiter=',', dtype=int # 可选,指定读取数据为整数类型,避免默认的float格式输出 ) # 补充绘图逻辑,以下为散点图示例可自行修改 plt.scatter(x, y) plt.xlabel('LVL') plt.ylabel('Highscore') plt.show() plot()
验证说明
修改后代码会正确读取CSV中两列数据,LVL赋值给x,Highscore赋值给y,不会再触发索引越界错误,解包逻辑也能正常运行。
内容的提问来源于stack exchange,提问作者rocketlauncheryay
相关产品推荐
相关产品推荐

