使用sharex在matplotlib子图中同步x轴

时间:2017-03-08 05:41:40

标签: python mongodb matplotlib charts

我刚刚开始使用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)

chart distortion using sharex to share axes

0 个答案:

没有答案