Как интегрировать поддиаграммы в одну ось matplotlib?
Глядя на вывод backtrader , я вижу, что, похоже, в matplotlib есть функция для интеграции нескольких поддиаграмм в один график:

На скриншоте одна фигура - по- видимому , без каких - либо Matplotlib подзаговорами - что есть три subcharts ( broker
, trades
, price data
).
Я знаю, как создавать подзаговоры с помощью matplotlib, но это не то, что я ищу.
Я хотел бы знать, как можно создать на одной оси (это правильный термин matplotlib?) Несколько поддиаграмм, которые имеют одну и ту же ось x.
Ответы
Вы можете делать то, что показано на рисунке, определяя height_ratios
среди подзаголовков.
несколько поддиаграмм с одной и той же осью x.
Вы можете обратиться к matplotlib.pyplot.subplots о sharex
иsharey
Когда подзаголовки имеют общую ось x вдоль столбца, создаются только метки x-деления нижнего подзаголовка.
Точно так же, когда подзаголовки имеют общую ось Y вдоль строки, создаются только метки y-деления первого подзаголовка столбца.
import matplotlib.pyplot as plt
fig, axs = plt.subplots(3, 1, sharex='col',
gridspec_kw={'width_ratios': [1], 'height_ratios': [2, 2, 10],
'hspace': 0, 'wspace': 0})
# avoid overlay
axs[1].set_yticks([0, 0.5, 1])
axs[1].set_yticklabels(["", "0.5", ""])
plt.show()

Если вам интересно, как аннотировать метки y, вы можете посмотреть мой ответ .
Есть отличная библиотека для визуализации запасов и т. Д. Изначально входила в matplotlib, но теперь это независимая библиотека, я дам упрощенный ответ на пример на Github. Формулу можно найти здесь .
import pandas as pd
import mplfinance as mpf
idf = pd.read_csv('data/SPY_20110701_20120630_Bollinger.csv', index_col=0, parse_dates=True)
df = idf.loc['2011-07-01':'2011-12-30',:]
mpf.plot(df, volume=True, tight_layout=True, figscale=0.75, style='checkers')
