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

如何用matplotlib.finance的candlestick_ohlc函数在Python绘制OHLC蜡烛图

使用matplotlib绘制OHLC蜡烛图(适配你的DataFrame数据)

嘿,我来帮你搞定这个蜡烛图绘制的问题!首先要提个关键点:原来的matplotlib.finance模块已经被官方迁移到mpl_finance库了,所以你得先安装这个依赖,不然运行代码会报错。

步骤1:安装必要的库

打开终端运行下面的命令,把需要的包都装上:

pip install mpl_finance pandas matplotlib

步骤2:数据预处理

candlestick_ohlc函数有个特殊要求:它需要数值格式的日期(不是字符串或datetime对象),而且输入数据必须是[日期数值, 开盘价, 最高价, 最低价, 收盘价]这样的结构。我们来一步步处理你的DataFrame:

假设你的DataFrame已经加载好了(比如从CSV读取),先把日期列转换成matplotlib能识别的数值格式:

import pandas as pd
import matplotlib.pyplot as plt
from mpl_finance import candlestick_ohlc
import matplotlib.dates as mdates

# 假设你的数据已经存在df里,比如从CSV读取:
# df = pd.read_csv('your_data_file.csv', parse_dates=['Date'])

# 确保Date列是datetime类型(如果还不是的话)
df['Date'] = pd.to_datetime(df['Date'])

# 将Date列转换为matplotlib日期数值
df['date_num'] = mdates.date2num(df['Date'])

# 整理成蜡烛图需要的OHLC格式数组
ohlc_data = df[['date_num', 'Open', 'High', 'Low', 'Close']].values

步骤3:绘制蜡烛图

接下来就可以画图了,我给你写了完整的绘图代码,还加了一些优化(比如日期标签旋转、网格、颜色设置):

# 创建画布和坐标轴,设置合适的尺寸
fig, ax = plt.subplots(figsize=(12, 6))

# 绘制蜡烛图:colorup是收盘价>开盘价的蜡烛颜色,colordown相反
candlestick_ohlc(ax, ohlc_data, width=0.6, colorup='green', colordown='red', alpha=0.8)

# 设置x轴日期显示格式,让日期更清晰易读
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
# 自动旋转日期标签,避免重叠
fig.autofmt_xdate()

# 添加图表标签和标题
ax.set_xlabel('Date')
ax.set_ylabel('Price')
ax.set_title('OHLC Candlestick Chart')  # 可以改成你对应的资产名称,比如"Bitcoin Price"

# 显示网格,方便读数
ax.grid(True, linestyle='--', alpha=0.5)

# 展示图表
plt.show()

一些小提示

  • width参数可以调整蜡烛的宽度,根据你的数据量调整到合适的大小(比如数据量多就调小一点)。
  • 颜色可以自由自定义,比如用十六进制颜色码#00ff00代替green,满足个性化需求。
  • 如果想在图表上叠加成交量等其他数据,可以在同一个画布上添加第二个坐标轴来实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:44:00