하나의 matplotlib 축에 하위 차트를 통합하는 방법은 무엇입니까?

Aug 20 2020

backtrader 의 출력을 보면 matplotlib에 여러 하위 차트를 단일 플롯에 통합하는 기능이있는 것 같습니다.

(또한보십시오 https://www.backtrader.com/docu/plotting/plotting/ )

스크린 샷 쇼 하나의 그림 - 분명히 어떤하기 matplotlib의 줄거리없이 - 세 subcharts있다 ( broker, trades, price data).

matplotlib를 사용하여 서브 플롯을 만드는 방법을 알고 있지만 이것은 제가 찾고있는 것이 아닙니다.

동일한 x 축을 공유하는 여러 개의 하위 차트를 하나의 축 (이것이 올바른 matplotlib 용어입니까?)으로 생성하는 방법을 알고 싶습니다.

답변

2 Ynjxsjmh Aug 21 2020 at 06:46

height_ratios서브 플롯 사이 를 정의하여 그림이 보여주는 것을 할 수 있습니다 .

동일한 x 축을 공유하는 여러 하위 차트.

및 에 대한 matplotlib.pyplot.subplots 를 참조 할 수 있습니다.sharexsharey

서브 플롯에 열을 따라 공유 된 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 레이블에 주석을 추가하는 방법에 관심이 있으시면 이 답변을 참조하십시오 .

1 r-beginners Aug 21 2020 at 08:08

주식 등의 시각화를위한 훌륭한 라이브러리가 있습니다. 원래는 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')