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

Matplotlib绘图出现空白图 如何绘制Open/High/Low/Close四个图表

问题根因

原代码仅完成了画布初始化、原始数据解包操作,没有调用任何绘图接口将Open、High、Low、Close四个价格指标的数据渲染到坐标轴上,因此执行plt.show()时只会输出空白画布。

修复后可运行代码

以下代码会生成2行2列的子图网格,分别展示四个指标的价格走势:

import matplotlib.pyplot as plt

# 原始金融数据保留
Levels = ['Open','High','Low','Close']
financial_data = (('3 October 2016',774.25,776.065002,769.5,772.559998),
('4',776.030029,778.710022,772.890015,776.429993),
('5',779.309998,782.070007,775.650024,776.469971),
('6',779,780.47998,775.539978,776.859985),
('7',779.659973,779.659973,770.75,775.080017),)
Days, Open, High, Low, Close= zip(*financial_data)
Position= list(range(len(financial_data)))

# 创建2行2列的子图布局
fig, axs = plt.subplots(2, 2, figsize=(10, 8))
# 绘制开盘价走势
axs[0,0].plot(Position, Open, color='#1f77b4', marker='o')
axs[0,0].set_title('Open')
axs[0,0].set_xticks(Position, Days)
# 绘制最高价走势
axs[0,1].plot(Position, High, color='#ff7f0e', marker='o')
axs[0,1].set_title('High')
axs[0,1].set_xticks(Position, Days)
# 绘制最低价走势
axs[1,0].plot(Position, Low, color='#2ca02c', marker='o')
axs[1,0].set_title('Low')
axs[1,0].set_xticks(Position, Days)
# 绘制收盘价走势
axs[1,1].plot(Position, Close, color='#d62728', marker='o')
axs[1,1].set_title('Close')
axs[1,1].set_xticks(Position, Days)

# 自动调整排版避免文字重叠
plt.tight_layout()
plt.show()
关键修改说明
  • 替换原有的单画布初始化逻辑,创建2行2列共4个独立子图,分别承载四个价格指标的折线,避免多序列混在同一张图中辨识度低
  • 对每个子图调用plot()方法,传入横轴坐标位置、对应价格序列完成绘图,添加点标记方便读取单日数值
  • 为每个子图配置对应指标标题,将横轴刻度替换为实际日期标签
  • 新增plt.tight_layout()自动调整子图间距,避免标题、刻度文字互相遮挡

内容的提问来源于stack exchange,提问作者Çağın

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 01:30:36