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

如何使用Python Matplotlib绘制包含正负值的年份与利润数据图表

适配图表类型说明

最适合展示该类年度正负利润数据的图表为正负分组柱状图,该类图表可以直观区分每年的盈利/亏损状态,数值大小对应柱形高度,正数值(盈利)柱形向上延伸,负数值(亏损)柱形向下延伸,年度利润对比一目了然。

现有代码异常原因

代码运行输出不符合预期的核心原因是profits列表中存储的是字符串格式的数据,Matplotlib无法识别字符串的数值大小,不能正确计算渲染柱形高度,最终导致异常输出。

正确实现代码
from matplotlib import pyplot as plt

# 原始数据
years = ['2010', '2011', '2012', '2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020']
profits = ['362', '622', '-409', '-92', '-148', '-130', '-128', '98', '-74', '35', '-419']

# 将利润数据从字符串转为整数类型
profits_num = [int(i) for i in profits]
# 为盈利、亏损设置不同颜色区分
bar_colors = ['#2ecc71' if i > 0 else '#e74c3c' for i in profits_num]

# 设置画布尺寸
plt.figure(figsize =(10, 7))
# 绘制柱状图
plt.bar(years, profits_num, color=bar_colors)
# 添加图表标注信息
plt.title('2010-2020年度利润变化', fontsize=14)
plt.xlabel('年份', fontsize=12)
plt.ylabel('利润', fontsize=12)
# 添加水平网格线方便读取数值
plt.grid(axis='y', linestyle='--', alpha=0.7)
# 添加0值基准线
plt.axhline(y=0, color='#333', linewidth=1)

# 展示图表
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:54:06