Python mpl_finance.candlestick2_ohlc在给定子批次时返回空白图形?
下面是给我带来困难的代码。我正在尝试将一个折线图绘制为顶行,并在下面动态创建若干子图,其中至少有一个是烛台图 当我自己绘制烛台K2_ohlc图时,没有为它创建子图,也没有绘制任何其他子图,它工作得非常完美。然而,当我尝试使用子图并包含其他图形时,结果是所有图形都绘制得非常完美,除了烛台完全缺失。我不知道是什么导致了这种行为,但是我知道在同一个图上没有其他图形覆盖它。任何帮助都将不胜感激。谢谢Python mpl_finance.candlestick2_ohlc在给定子批次时返回空白图形?,python,matplotlib,quantitative-finance,Python,Matplotlib,Quantitative Finance,下面是给我带来困难的代码。我正在尝试将一个折线图绘制为顶行,并在下面动态创建若干子图,其中至少有一个是烛台图 当我自己绘制烛台K2_ohlc图时,没有为它创建子图,也没有绘制任何其他子图,它工作得非常完美。然而,当我尝试使用子图并包含其他图形时,结果是所有图形都绘制得非常完美,除了烛台完全缺失。我不知道是什么导致了这种行为,但是我知道在同一个图上没有其他图形覆盖它。任何帮助都将不胜感激。谢谢 def plot(self): def mydate(x, pos): '''f
def plot(self):
def mydate(x, pos):
'''function for labeling xticks as datetime objects'''
try:
return self.broker.data.index[int(x)]
except IndexError:
return ''
totalPlots = 1
plotNum = 1
for indicator in self.indicators:
if not indicator.plotWithData:
totalPlots += 1
for data in self.broker.data:
totalPlots += 1
fig, ax = plt.subplots()
ax.xaxis.set_major_locator(tickerGraph.MaxNLocator(10)) # number of xtick labels
ax.xaxis.set_major_formatter(tickerGraph.FuncFormatter(mydate)) # use nested method to label xticks
plt.subplot(int(str(str(totalPlots) + '1' + str(plotNum)))) # top plot is always account value
plt.title('Account Value')
plt.plot(list(self.broker.data.values())[0].df.index, self.broker.valueData)
for ticker in self.broker.data.keys():
plotNum += 1
plt.subplot(int(str(str(totalPlots) + '1' + str(plotNum))))
plt.title(ticker)
candlestick2_ohlc(ax=ax, opens=self.broker.data[ticker].df['open'], highs=self.broker.data[ticker].df['high'],
lows=self.broker.data[ticker].df['low'], closes=self.broker.data[ticker].df['close'],
width=.6, colorup='g', colordown='r')
for trade in self.plotTrades[ticker]:
plt.scatter(list(self.broker.data.values())[0].df.index[trade.index], self.broker.data[ticker].df.iloc[trade.index]['close'], c=trade.color) ##IMPROVE
for indicator in self.indicators:
if indicator.plotWithData:
plt.plot(indicator.ydata[ticker])
for indicator in self.indicators:
if not indicator.plotWithData:
plotNum += 1[enter image description here][1]
plt.subplot(int(str(str(totalPlots) + '1' + str(plotNum))))
plt.plot(indicator.ydata[ticker])
plt.title(indicator.name + ' ' + ticker)
plt.show()
下面是奇怪的空白图表:
它可能就在所有其他绘图的后面?我建议只使用
fig,arrayofax=plt.subplot(totalPlots+1,1)
或plt.figure()
,然后使用单个plt.subplot(…)
。(顺便说一句,plt.subplot(totalPlots,1,n)
比您执行的字符串转换可读性好得多。)也请阅读。您所说的隐藏是什么意思?我尝试了同样的东西,但没有分散,它仍然是空白的。谢谢你的推荐,我完全忘记了子地块的逗号语法。我还将尝试指定子情节。我想我只能用a来进一步帮助。它可能只是在所有其他情节后面?我建议只使用fig,arrayofax=plt.subplot(totalPlots+1,1)
或plt.figure()
,然后使用单个plt.subplot(…)
。(顺便说一句,plt.subplot(totalPlots,1,n)
比您执行的字符串转换可读性好得多。)也请阅读。您所说的隐藏是什么意思?我尝试了同样的东西,但没有分散,它仍然是空白的。谢谢你的推荐,我完全忘记了子地块的逗号语法。我还将尝试指定子地块。我想我只能通过一个。