Y轴显示异常求助:每日筹款金额折线图绘制故障排查
问题排查与解决:Matplotlib Y轴显示异常问题
核心问题分析
- 数据类型错误:
donax中的筹款金额是带逗号的字符串(如'60,299'),Matplotlib会将其识别为分类数据,导致Y轴按字符串字典序排列,而非数值大小排序。 - 数据维度不匹配:
dax长度为6,donax长度为17,绘图时维度不匹配会引发异常或显示错乱。 - 代码语法问题:
set_figwidth未正确调用,注释的plt.yticks未生效,无法自定义Y轴刻度。
修正后的完整代码
import matplotlib.pyplot as plt # 1. 处理筹款金额数据:将带逗号的字符串转为数值类型 donax = ['60,299', '48,610', '6,480', '12,286', '36,999', '25,600', '10,351', '10,000', '12,950', '13,000', '2,000', '17,501', '250', '1,100', '4,000', '2,000', '50,000'] donax_numeric = [int(amount.replace(',', '')) for amount in donax] # 2. 匹配X轴日期数据:当前用1-17日对应现有数据,若有完整59天数据可替换为range(1,60) dax = list(range(1, len(donax_numeric) + 1)) # 3. 设置图表宽度 plt.figure(figwidth=10) # 4. 绘制折线图 plt.plot(dax, donax_numeric) # 5. 自定义Y轴刻度,按需求调整 plt.yticks([0, 1000, 5000, 10000, 30000, 50000, 100000]) # 6. 添加轴标签与标题 plt.xlabel('日期(1-59日)') plt.ylabel('每日筹款金额') plt.title('每日筹款金额趋势') plt.show()
关键修复点说明
- 数据类型转换:通过
replace(',', '')移除金额字符串中的逗号,再转为整数,确保Matplotlib按数值逻辑处理Y轴数据。 - 维度匹配:生成与Y轴数据长度一致的X轴日期序列,避免绘图时维度不匹配问题。
- 语法修正:用
plt.figure(figwidth=...)正确设置图表宽度,启用plt.yticks自定义刻度,让Y轴按预期数值区间显示。
内容的提问来源于stack exchange,提问作者Kushagra Saxena
相关产品推荐
相关产品推荐

