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

使用matplotlib读取CSV绘图时y轴数值乱序且转float报错如何解决

问题解决方案

错误原因排查

你遇到的问题由三个共同原因导致:

  • 代码缺失csv模块导入语句,本身无法正常运行
  • 未跳过CSV第一行表头,遍历读取到表头的sales字符串,尝试转float时触发ValueError
  • 未做类型转换时y轴数据为字符串类型,matplotlib会按字符串读取顺序排列y轴刻度,不会按数值大小排序,因此出现y轴数值排序异常的问题

修正后完整代码

import csv
import matplotlib.pyplot as plt

x = []
y = []

with open('sales.csv','r') as sales_csv:
    plots = csv.reader(sales_csv, delimiter=',')
    # 跳过第一行表头
    next(plots)
    for row in plots:
        # 去除字段前后多余空格后添加到x列表
        x.append(row[1].strip())
        # 销售额转换为float类型后添加到y列表
        y.append(float(row[2].strip()))

plt.plot(x, y, color='r', label='Monthly Sales 2018', marker='o')
plt.xlabel('Month')
plt.ylabel('Sales')
plt.title('Monthly Sales 2018')
plt.legend()

plt.show()

关键修改说明

  • 新增import csv语句,补全CSV读取所需的依赖模块
  • 调用next(plots)方法读取并丢弃CSV第一行表头,避免读取到表头字段导致类型转换失败
  • 读取字段时统一调用strip()去除前后多余空格,避免CSV字段间的空格导致显示或转换异常
  • 销售额字段转换为float类型,保证matplotlib按数值大小对y轴排序,显示正常的折线趋势

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 17:45:06