gpt4 book ai didi

matplotlib - 绘制共享 x 轴的多个 mplfinance 图

转载 作者:行者123 更新时间:2023-12-02 18:28:25 55 4
gpt4 key购买 nike

我正在尝试使用 mplfinance 绘制 5 个图表。

这个有效:

for coin in coins:
mpf.plot(df_coins[coin], title=coin, type='line', volume=True, show_nontrading=True)

但是,在我的 Python Notebook 单元格输出中,每个图都是一个单独的图像。并对每张图像重复 x 轴标记。

我尝试制作一个包含多个子图/轴的图形,并在每个轴上绘制一个图表:

from matplotlib import pyplot as plt

N = len(df_coins)
fig, axes = plt.subplots(N, figsize=(20, 5*N), sharex=True)

for i, ((coin, df), ax) in zip(enumerate(df_coins.items()), axes):
mpf.plot(df, ax=ax, title=coin, type='line', volume=True, show_nontrading=True)

这显示了正确尺寸的子图,但是它们没有填充数据。坐标轴标记为 0.0 到 1.0,但没有显示标题。

我错过了什么?

最佳答案

子图有两种方法。一种是设置一个带有 mplfinance 对象的图形。另一种方法是使用您采用的 matplotlib 子图来放置它。

yfinace 数据

import matplotlib.pyplot as plt
import mplfinance as mpf
import yfinance as yf

tickers = ['AAPL','GOOG','TSLA']
data = yf.download(tickers, start="2021-01-01", end="2021-03-01", group_by='ticker')

aapl = data[('AAPL',)]
goog = data[('GOOG',)]
tsla = data[('TSLA',)]

mplfinance

fig = mpf.figure(style='yahoo', figsize=(12,9))
#fig.subplots_adjust(hspace=0.3)
ax1 = fig.add_subplot(3,1,1, sharex=ax3)
ax2 = fig.add_subplot(3,1,2, sharex=ax3)
ax3 = fig.add_subplot(3,1,3)

mpf.plot(aapl, type='line', ax=ax1, axtitle='AAPL', xrotation=0)
mpf.plot(goog, type='line', ax=ax2, axtitle='GOOG', xrotation=0)
mpf.plot(tsla, type='line', ax=ax3, axtitle='TSLA', xrotation=0)
ax1.set_xticklabels([])
ax2.set_xticklabels([])

ma​​tplotlib

N = len(tickers)
fig, axes = plt.subplots(N, figsize=(20, 5*N), sharex=True)

for df,t,ax in zip([aapl,goog,tsla], tickers, axes):
mpf.plot(df, ax=ax, axtitle=t, type='line', show_nontrading=True)# volume=True

关于matplotlib - 绘制共享 x 轴的多个 mplfinance 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69777102/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com