1. 绘制股票收盘价折线图
任务说明
本案例使用Python从本地CSV文件读取股票历史日线数据,绘制收盘价随时间变化的折线图,并保存为PNG图片。数据文件包含日期和收盘价两列,代码将完成数据加载、解析、绘图与保存的完整流程。
数据准备
在代码同级目录下创建 stock_data.csv,内容为示例数据(前5行):
date,close
2024-01-02,152.35
2024-01-03,153.20
2024-01-04,151.85
2024-01-05,154.60
实现代码
import csv
from datetime import datetime
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
# 1. 读取CSV数据
dates = []
prices = []
with open('stock_data.csv', 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
for row in reader:
dates.append(datetime.strptime(row['date'], '%Y-%m-%d'))
prices.append(float(row['close']))
# 2. 绘制折线图
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(dates, prices, color='#1f77b4', linewidth=1.8, marker='o', markersize=4)
# 3. 图表装饰
ax.set_title('Stock Closing Price Trend', fontsize=14, pad=15)
ax.set_xlabel('Date', fontsize=11)
ax.set_ylabel('Close Price (USD)', fontsize=11)
ax.grid(True, linestyle='--', alpha=0.6)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
fig.autofmt_xdate(rotation=45)
# 4. 保存与显示
plt.tight_layout()
plt.savefig('stock_close_price.png', dpi=150)
plt.show()
运行方式
确保已安装matplotlib库(pip install matplotlib),在代码文件所在目录执行:
python stock_line_chart.py
验证方法
运行后观察:
- 控制台无报错,弹出窗口显示折线图;
- 当前目录生成
stock_close_price.png文件; - 图中横轴为日期(自动倾斜45度),纵轴为收盘价,数据点与CSV中数值一一对应;
- 折线连接顺序与CSV行序一致,无跳点或错位。
判定通过标准:图片文件成功生成,且图中每个数据点的纵坐标与CSV中对应行的close值完全吻合。