Matplotlib烛台图的值误差:像素太多

时间:2017-08-03 19:52:24

标签: python matplotlib pixels annotate candlestick-chart

我正在尝试在matplotlib烛台图上叠加注释。但我不断收到以下错误:

  

ValueError:图像大小为736485x402像素太大。肯定是   每个方向小于2 ^ 16。

     

我的Jupyter Notebook代码如下。

我将Yahoo Earnings Calendar数据拉入数据框,然后将DF转换为numpy数组,'g2'包含4列)。

当我只绘制烛台时,事情很好。但是当我尝试添加注释时,我得到了错误。

from matplotlib.finance import candlestick2_ohlc
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import datetime as datetime
import numpy as np



fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
ax2 = fig.add_subplot(1,1,1)


plt.xticks(rotation=70)
candlestick2_ohlc(ax1,g2[:,0],g2[:,1],g2[:,2],g2[:,3],width=0.6,colorup='k', colordown='r', alpha=1.0)
xdate = f2.index

ax1.annotate('Earnings Date 8-02', (xdate[30], g2[:,0][30]), xytext=( xdate[30], g2[:,0][30]), clip_on=True)


ax1.annotate("",
            xy=(xdate[30], 145), xycoords='data',
            xytext=(xdate[30], 150), textcoords='data',
            arrowprops=dict(arrowstyle="->",
                            connectionstyle="arc3"),
            )


ax1.xaxis.set_major_locator(ticker.MaxNLocator(6))

def mydate(x,pos):
    try:
        return xdate[int(x)]
    except IndexError:
        return ''

ax1.xaxis.set_major_formatter(ticker.FuncFormatter(mydate))

ax1.grid(True)

fig.autofmt_xdate()

plt.setp(ax1.get_xticklabels(), visible=True, rotation=45)

fig.tight_layout()

plt.show()

0 个答案:

没有答案