如何在python中绘制烛台

时间:2018-12-09 23:13:57

标签: python plot finance candlestick-chart

我正在尝试用烛台创建一个简单的情节。为此,我从Yahoo获得数据并使用功能Candlestick2_ohlc对其进行绘制。目的是使用将图像导出为jpg文件。

这是我正在使用的代码:

from pandas_datareader import data
import matplotlib.pyplot as plt
from mpl_finance import candlestick2_ohlc
import matplotlib.dates as mdates
import fix_yahoo_finance as yf
import datetime

start = datetime.date(2018, 1, 1)
end = datetime.date.today()

aapl = yf.download("AAPL",start,end) 
aapl.reset_index(inplace=True)

aapl['Date'] = aapl.index.map(mdates.date2num)

fig, ax = plt.subplots()
plt.xlabel("Date")
plt.ylabel("Price")

candlestick2_ohlc(ax, aapl.Open, aapl.High, aapl.Low, aapl.Close, width=1, colorup='g')
plt.savefig('my_figure.png')
plt.show()

我的第一个问题是:还有另一种简单的方法吗?您能给我一个处理财务数据的例子吗?我通常在R中使用Quantmod。

第二个问题是:在我的示例中,X轴中没有日期。如何在X轴上显示带有日期的图?我应该将Date转换为AX格式,但是我不知道一种简单的方法。

谢谢

4 个答案:

答案 0 :(得分:2)

使用Plotly,您可以用一行代码绘制烛台图。

df[['Open', 'High', 'Low', 'Close']]['2018-01-01':'20XX-XX-XX'].iplot(kind="candle")

在使用plotly之前,您需要在命令行上使用pip安装plotly和袖扣:

pip install plotly

pip install cufflinks

此外,您需要在Jupiter Notebook的顶部导入以下内容:

from plotly import __version__

import cufflinks as cf

from plotly.offline import download_plotlyjs, init_notebook_mode, plot, iplot

init_notebook_mode (connected=True)

cf.go_offline()

答案 1 :(得分:2)

您可以使用matplot进行所有操作(使用Boxplot)

RelativeSource={RelativeSource AncestorType=iWPF:XamComboEditor}

答案 2 :(得分:2)

finplot的工作日期:

import finplot as fplt
import yfinance
df = yfinance.download('AAPL')
fplt.candlestick_ochl(df[['Open', 'Close', 'High', 'Low']])
fplt.show()

finplot shows your dates

它不仅显示您的日期,而且还进行了许多改进(在此列出太多)。

免责声明::我不喜欢matplotlib和plotly的API(以及性能和功能缺乏),因此创建了finplot。它已经有mpl_finance的pypi星的9%,所以检查一下吧!

答案 3 :(得分:1)

首先,您需要使用以下命令安装plotly软件包:

pip install plotly

然后,您可以像下面的代码一样简单地绘制蜡烛图:

import plotly.graph_objects as go

import pandas as pd
from datetime import datetime

df = pd.read_csv('your_file_address')

fig = go.Figure(data=[go.Candlestick(x=df['name_of_time_column'],
                open=df['name_of_open_column'],
                high=df['name_of_high_column'],
                low=df['name_of_low_column'],
                close=df['name_of_close_column'])])

fig.show()