我正在尝试在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()