seaborn과 matplotlib의 figure와 axes를 사용하여 여러 그래프를 그립니다.

개요



matplotlib을 문서를 읽지 않고 현장에서 사용한다면,
이마이치 잘 모르는 채로 되는 figure와 axes를 은근하게 알게 된 신경이 쓰이는 기사
(알지 못함)

왜 이걸 썼는지



조금 문서를 읽으면 알았던 신경이 쓰였으므로,
다른 사람에게도 알게 된 걱정이 되었으면 했으니까.

제대로 이해하려면



  • 공식 읽기
  • matplotlib의 엄청나게 정리
  • matplotlib의 계층 구조를 알면 행복해질 수 있습니다.

  • 내용



    전제



    다음은 생략하고 씁니다.
    import numpy as np
    import seaborn as sns
    from matplotlib import pyplot as plt
    

    우선 소개



    figure와 axes는 이런 관계.
    figure가 그리기 영역 전체이고, axes가 그래프의 그리기 영역
  • 그래프의 draw area가 1 개의 경우
  • 그래프의 드로잉 영역이 2개(1행 2열)의 경우

  • 갈라진 그래프의 그리기 영역을 1행 2열의 배치로 2개 만들어 보자


    # サイズが8,4の描画領域と1行2列のグラフの描画領域を作る
    fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(8,4))
    
    # figureのタイトルを設定する
    fig.suptitle("figure_title")
    
    # 1番目の描画領域にタイトルを設定する
    ax[0].set_title("axes0_title")
    
    # 2番目の描画領域にタイトルを設定する
    ax[1].set_title("axes1_title")
    

    실행 결과


    그래프를 그려보세요


    # 10000個の数字を作る
    norm_arr = np.random.randn(10000)
    
    # サイズが6,3の描画領域と1行2列のグラフの描画領域を作る
    fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(6,3))
    
    # figureのタイトルを設定する
    fig.suptitle("figure_title")
    
    # 1番目のaxesにタイトルを設定する
    ax[0].set_title("axes0")
    
    # 1番めのaxesにグラフを書く
    ax[0].hist(norm_arr)
    
    # 2番目のaxesにタイトルを設定する
    ax[1].set_title("axes1")
    
    # 2番目のaxesにseabornでグラフを書く
    sns.histplot(norm_arr, ax=ax[1])
    

    실행 결과


    겹쳐서 그려보세요


    # 前項のコードの末尾に以下のコードを追加する
    x_scat = np.random.randn(100)
    y_scat = np.random.randint(low=100, high=500, size=(1,100))
    ax[1].scatter(x_scat, y_scat) #1番目のaxesに散布図を書く
    

    실행 결과
    실행 결과 두 번째 축에 겹쳐서 그려진 것을 알 수 있다.


    좋은 웹페이지 즐겨찾기