Python 3:pandas 和 mplfinance:具有顺序数据的烛台图无日期/时间索引

问题描述

我有一些数据排列为二维 numpy 数组。

数据有4列,对应统计

  • 分钟
  • 最大
  • 平均值 + 标准差
  • 平均值 - 标准差

我想用蜡烛图绘制这些图。据我所知,使用 matplotlib 执行此操作的唯一方法是使用 mplfinance 包。

我已使用以下方法将我的数据转换为 Pandas 数据框:

data_frame = pandas.DataFrame(data_in,columns=['Low','High','Open','Close'])

并尝试使用

绘图
mplfinance.plot(data_frame,type='candle')

但是这个错误导致:

raise TypeError('Expect data.index as DatetimeIndex')

所以我想我需要有某种包含日期/时间数据的列。

我之前没有使用过这个包,所以我不确定我在这里做什么。

可以向我的输入数据添加日期/时间戳,尽管这有点不方便并且需要我更改很多其他脚本。

数据来自一些传感器,这些传感器以(大约)固定的时间间隔进行采样。 (获取样本的确切时间不是特别重要。)

因此我有 4 列数据要绘制,并且数据是连续的。

(注意,为了计算最小值、最大值、平均值、sd 等,进行了一些预处理。同样,这不是至关重要的,并且基本上使时间信息无关紧要。)

是否有一种方法可以通过指定数据“按顺序”来绘制蜡烛图,并且 x 轴应该类似于“从 1 到 N”,其中 N 是数据中的样本数。

解决方法

您可以尝试以下几点:

  1. matplotlib boxplot ... 不是烛台,但类似。

  2. 照例使用 mplfinance,并生成从 1 月 1 日开始的任意日期时间索引,并使用 %j(一年中的某天)日期时间格式:


data_frame = pandas.DataFrame(data_in,columns=['Low','High','Open','Close'])

data_frame.index = pandas.date_range('1/1/2021',periods=(len(data_frame))

mplfinance.plot(data_frame,type='candle',datetime_format='%j')

希望有帮助。完全披露:我是 mplfinance 库的维护者。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...