我刚刚开始使用Python进行编码,目前正在使用matplotlib处理与图表相关的财务数据,使用pandas进行数据分析和MongoDB中的数据库。这可能是一个基本问题,但是我已经完成了所有答案,但我还没有找到解决方案。
我的数据集采用数据框的形式:
指数|关闭|日期|高|低|打开|卷|
0 | 1259.95 | 2015-02-02 | 1295.00 | 1256.00 | 1280.00 | 59400 |
1 | 1264.15 | 2015-02-03 | 1280.00 | 1255.65 | 1264.00 | 43100 |
2 | 1267.85 | 2015-02-04 | 1288.95 | 1263.10 | 1273.20 | 41500 |
码块:
import matplotlib.dates as mdates
import pandas as pd
from matplotlib.finance import candlestick, volume_overlay
import matplotlib.pyplot as plt
from feed.get_data import get_ticker_data #simply gets data from yahoo into dataframe
def candlestick_data_1(ticker, startdate, enddate):
data = get_ticker_data(ticker, 'Open', 'High', 'Low', 'Close', 'Volume', startdate=startdate, enddate=enddate)
print data
data['Date'] = mdates.date2num(pd.to_datetime(data['Date']))
dataAr = [tuple(x) for x in data[['Date', 'Open', 'Close', 'High', 'Low']].to_records(index=False)]
fig = plt.figure()
ax1 = plt.subplot(211)
ax2 = plt.subplot(212)
candlestick(ax1, dataAr, colorup='#00ff00', alpha=1.0)
volume_overlay(ax2, data['Open'], data['Close'], data['Volume'])
plt.show()
当我不使用&share; sharex'该图很好地绘制,但x轴不同步,如下所示:
candlestick chart using matplotlib
但是当我使用sharex时,图表会完全失真: 代码块:
ax2 = plt.subplot(212, sharex=ax1)