用Pandas和Matplotlib绘制Candlestick_OHLC一分钟柱线图 [英] Charting Candlestick_OHLC one minute bars with Pandas and Matplotlib

查看:1019
本文介绍了用Pandas和Matplotlib绘制Candlestick_OHLC一分钟柱线图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出以下熊猫数据框示例

Given the following example of Pandas dataframe

                    date    open    high     low   close    volume
0    2015-03-13 08:00:00  71.602  71.637  71.427  71.539  0.000249
1    2015-03-13 08:01:00  71.541  71.563  71.461  71.501  0.000215
2    2015-03-13 08:02:00  71.521  71.537  71.504  71.533  0.000048
3    2015-03-13 08:03:00  71.530  71.530  71.510  71.524  0.000016
4    2015-03-13 08:04:00  71.504  71.578  71.504  71.515  0.000045
5    2015-03-13 08:05:00  71.524  71.581  71.522  71.538  0.000062
6    2015-03-13 08:06:00  71.562  71.621  71.542  71.550  0.000095
7    2015-03-13 08:07:00  71.555  71.576  71.544  71.565  0.000051
8    2015-03-13 08:08:00  71.555  71.566  71.554  71.565  0.000023
9    2015-03-13 08:09:00  71.564  71.564  71.502  71.504  0.000017
10   2015-03-13 08:10:00  71.508  71.549  71.486  71.516  0.000097
11   2015-03-13 08:11:00  71.521  71.523  71.443  71.447  0.000103
12   2015-03-13 08:12:00  71.451  71.496  71.444  71.480  0.000206
13   2015-03-13 08:13:00  71.473  71.485  71.389  71.418  0.000147
14   2015-03-13 08:14:00  71.424  71.442  71.394  71.398  0.000107
15   2015-03-13 08:15:00  71.393  71.415  71.350  71.356  0.000141
16   2015-03-13 08:16:00  71.377  71.463  71.366  71.436  0.000142
17   2015-03-13 08:17:00  71.428  71.467  71.391  71.440  0.000091
18   2015-03-13 08:18:00  71.357  71.450  71.353  71.420  0.000147
19   2015-03-13 08:19:00  71.420  71.476  71.415  71.439  0.000062
20   2015-03-13 08:20:00  71.443  71.471  71.403  71.435  0.000196
21   2015-03-13 08:21:00  71.442  71.475  71.425  71.469  0.000032

如何在X轴上绘制一分钟的烛台OHLC条以显示分钟的时间范围?

How to plot one minute candlestick OHLC bars showing the minute timeframe on the xaxis?

我试过了,但是没用

df = df[['date', 'open', 'high', 'low', 'close', 'volume']]
df = df.reset_index()
f1 = plt.subplot2grid((6, 4), (1, 0), rowspan=6, colspan=4, axisbg='#07000d')
f1.xaxis.set_major_formatter(mdates.DateFormatter('%y-%m-%d %H:%M:%S'))
candlestick_ohlc(f1, df.values, width=.6, colorup='#53c156', colordown='#ff1717')
plt.ylabel('Stock Price')
plt.xlabel('Date Hours:Minutes')
plt.show()

推荐答案

注意:matplotlib.finance已从mpl中取出并移入其自己的模块中. mplfinance现在可以在此处找到.

Note: matplotlib.finance was taken out of mpl and moved into its own module. mplfinance can now be found here.

您需要将日期转换为mdates.date2num,因为

You need convert dates to mdates.date2num, because

时间必须为浮动日期格式-请参见date2num

time must be in float days format - see date2num

然后我尝试实施此解决方案:

Then I try implement this solution:

import pandas as pd

import matplotlib.pyplot as plt
from matplotlib.finance import candlestick_ohlc
import matplotlib.dates as mdates

#if necessary convert to datetime
df.date = pd.to_datetime(df.date)

df = df[['date', 'open', 'high', 'low', 'close', 'volume']]
df["date"] = df["date"].apply(mdates.date2num)

f1 = plt.subplot2grid((6, 4), (1, 0), rowspan=6, colspan=4, axisbg='#07000d')
candlestick_ohlc(f1, df.values, width=.6, colorup='#53c156', colordown='#ff1717')
f1.xaxis_date()
f1.xaxis.set_major_formatter(mdates.DateFormatter('%y-%m-%d %H:%M:%S'))

plt.xticks(rotation=45)
plt.ylabel('Stock Price')
plt.xlabel('Date Hours:Minutes')
plt.show()

这篇关于用Pandas和Matplotlib绘制Candlestick_OHLC一分钟柱线图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆