복붙노트

[PYTHON] matplotlib에서 여러 개의 서브 플로트를 얻으려면 어떻게해야합니까?

PYTHON

matplotlib에서 여러 개의 서브 플로트를 얻으려면 어떻게해야합니까?

이 코드가 어떻게 작동하는지 조금 혼란 스럽습니다.

fig, axes = plt.subplots(nrows=2, ncols=2)
plt.show()

이 무화과 축은 어떻게 작동합니까? 그것은 무엇을합니까?

또한 왜 이것이 똑같은 일을하지 않을까요?

fig = plt.figure()
axes = fig.subplots(nrows=2, ncols=2)

감사

해결법

  1. ==============================

    1.몇 가지 방법이 있습니다. subplots 메서드는 그림을 ax 배열에 저장된 하위 그림과 함께 만듭니다. 예 :

    몇 가지 방법이 있습니다. subplots 메서드는 그림을 ax 배열에 저장된 하위 그림과 함께 만듭니다. 예 :

    import matplotlib.pyplot as plt
    
    x = range(10)
    y = range(10)
    
    fig, ax = plt.subplots(nrows=2, ncols=2)
    
    for row in ax:
        for col in row:
            col.plot(x, y)
    
    plt.show()
    

    그러나이 같은 것도 작동 할 것이므로 하위 그림이있는 그림을 만든 다음 맨 위에 추가하는 것이므로 "깨끗한"것은 아닙니다.

    fig = plt.figure()
    
    plt.subplot(2, 2, 1)
    plt.plot(x, y)
    
    plt.subplot(2, 2, 2)
    plt.plot(x, y)
    
    plt.subplot(2, 2, 3)
    plt.plot(x, y)
    
    plt.subplot(2, 2, 4)
    plt.plot(x, y)
    
    plt.show()
    

  2. ==============================

    2.설명서를 읽으십시오 : matplotlib.pyplot.subplots

    설명서를 읽으십시오 : matplotlib.pyplot.subplots

    pyplot.subplots ()는 두 개의 변수로 표기법을 사용하여 압축을 푼 tuple fig, ax를 반환합니다.

    fig, axes = plt.subplots(nrows=2, ncols=2)
    

    코드

    fig = plt.figure()
    axes = fig.subplots(nrows=2, ncols=2)
    

    subplots ()는 객체 그림의 멤버가 아닌 pyplot의 함수이기 때문에 작동하지 않습니다.

  3. ==============================

    3.matplotlib 버전 2.1에서 질문의 두 번째 코드가 잘 작동한다는 사실에 관심이있을 것입니다.

    matplotlib 버전 2.1에서 질문의 두 번째 코드가 잘 작동한다는 사실에 관심이있을 것입니다.

    변경 로그에서 :

    예:

    import matplotlib.pyplot as plt
    
    fig = plt.figure()
    axes = fig.subplots(nrows=2, ncols=2)
    
    plt.show()
    
  4. ==============================

    4.

    import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots(2, 2)
    
    ax[0, 0].plot(range(10), 'r')
    ax[1, 0].plot(range(10), 'b')
    ax[0, 1].plot(range(10), 'g')
    ax[1, 1].plot(range(10), 'k')
    plt.show()
    

  5. ==============================

    5.이렇게 :

    이렇게 :

    import matplotlib.pyplot as plt
    fig, (ax1, ax2, ax3, ax4) = plt.subplots(2, 2, sharex=True, sharey=True)
    ax1.plot(range(10), 'r')
    ax2.plot(range(10), 'b')
    ax3.plot(range(10), 'g')
    ax4.plot(range(10), 'k')
    plt.show()
    
  6. from https://stackoverflow.com/questions/31726643/how-do-i-get-multiple-subplots-in-matplotlib by cc-by-sa and MIT license