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

如何使用mplfinance新API实现K线图与散点图的叠加绘制

使用mplfinance新API实现K线图与散点图叠加

mplfinance新API提供两种方式实现K线与其他图表的叠加,以下是具体实现方法:

准备数据

首先确保你的DataFrame满足新API要求:

  • 包含open、high、low、close列
  • 索引为datetime类型

先把示例数据转换成符合要求的格式:

import pandas as pd
import mplfinance as mpf

# 构造示例数据
data = {
    'open': [10, 11],
    'high': [11, 12],
    'low': [9, 10],
    'close': [10, 11]
}
df = pd.DataFrame(data, index=pd.to_datetime(['2022-01-01', '2022-01-02']))

# 准备散点数据
scatter_dates = pd.to_datetime(['2022-01-01'])
scatter_values = [10]

方法一:使用addplot参数(推荐)

新API的mpf.plot()支持通过addplot参数传入额外的绘图对象,直接实现叠加:

# 创建散点图的绘图对象
scatter_plot = mpf.make_addplot(scatter_values, type='scatter', markersize=50, color='blue', x=scatter_dates)

# 绘制K线并叠加散点
mpf.plot(df, 
         type='candle', 
         width=0.2, 
         colorup='k', 
         colordown='r', 
         alpha=1.0,
         addplot=scatter_plot)

方法二:手动指定坐标轴叠加

如果你需要先绘制散点再叠加K线(类似旧版逻辑),可以手动创建Matplotlib坐标轴,指定给mpf绘制K线,再在同一坐标轴上添加散点:

import matplotlib.pyplot as plt

# 创建画布和坐标轴
fig, ax = plt.subplots()

# 先绘制散点图
ax.scatter(scatter_dates, scatter_values, s=50, color='blue')

# 在同一坐标轴上绘制K线
mpf.plot(df, 
         type='candle', 
         width=0.2, 
         colorup='k', 
         colordown='r', 
         alpha=1.0,
         ax=ax)  # 指定已有的坐标轴

plt.show()

注意事项

  • 新API中width参数控制K线柱的宽度,对应旧版的width
  • colorup和colordown参数用法与旧版一致,分别指定收盘价高于开盘价、低于开盘价的K线颜色
  • 如果需要叠加多个图表,addplot可以传入列表形式的多个绘图对象

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:20:29