使用Candlestick_ohlc显示CSV [英] Display csv with candlestick_ohlc
本文介绍了使用Candlestick_ohlc显示CSV的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我尝试对熊猫做第一步.
I try to do first steps with pandas.
成功完成一些步骤后,我坚持执行以下任务:使用OHLC条显示数据.
After a few successful steps I stuck with the following task: display data with OHLC bars.
我从Google财经下载了苹果股票的数据,并将其存储到* .csv文件中.
I downloaded data for Apple stock from Google Finance and stored it to *.csv file.
经过大量搜索,我编写了以下代码:
After a lot of search I wrote the following code:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime as dt
from matplotlib.finance import candlestick_ohlc
#read stored data
#First two lines of csv:
#Date,Open,High,Low,Close
#2010-01-04,30.49,30.64,30.34,30.57
data = pd.read_csv("AAPL.csv")
#graph settings
fig, ax = plt.subplots()
ax.xaxis_date()
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d"))
plt.xlabel("Date")
plt.ylabel("Price")
plt.title("AAPL")
#convert date to float format
data['Date2'] = data['Date'].map(lambda d: mdates.date2num(dt.datetime.strptime(d, "%Y-%m-%d")))
candlestick_ohlc(ax, (data['Date2'], data['Open'], data['High'], data['Low'], data['Close']))
plt.show()
但是它显示空图. 此代码有什么问题?
But it displays empty graph. What is wrong with this code?
谢谢.
推荐答案
您需要更改最后一行以每天合并元组.以下代码:
You need to change the last line to combine tuples daily. The following code:
start = dt.datetime(2015, 7, 1)
data = pd.io.data.DataReader('AAPL', 'yahoo', start)
data = data.reset_index()
data['Date2'] = data['Date'].apply(lambda d: mdates.date2num(d.to_pydatetime()))
tuples = [tuple(x) for x in data[['Date2','Open','High','Low','Close']].values]
fig, ax = plt.subplots()
ax.xaxis_date()
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m-%d"))
plt.xticks(rotation=45)
plt.xlabel("Date")
plt.ylabel("Price")
plt.title("AAPL")
candlestick_ohlc(ax, tuples, width=.6, colorup='g', alpha =.4);
产生以下图:
您可以进一步修改.
这篇关于使用Candlestick_ohlc显示CSV的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文