matplotlib subplot 예제

정렬된 열 이나 서브 플롯의 행은 Matplotlib가 쉽게 만들 수 있도록 몇 가지 편의 루틴을 가지고 있는 일반적인 필요성입니다. 이 중 가장 낮은 수준은 그리드 내에서 단일 서브플롯을 생성하는 plt.subplot()입니다. 보시다시피 이 명령은 왼쪽 위에서 오른쪽 아래까지 실행되는 이 스키마에서 생성할 행 수, 열 수 및 플롯의 인덱스인 세 개의 정수 인수를 사용합니다. , 그림은 개념적으로 `nrows`* `ncols`하위 축으로 분할됩니다. 매개변수 `plot_number`는 함수 호출이 만들어야 하는 서브플롯을 식별합니다. `plot_number`는 1에서 최대 `nrows` * `ncols`까지 다양합니다. 이전 접근 방식은 허용가능하지만 그림 클래스의 인스턴스를 사용하여 개체 지향 접근 방식을 사용하는 것이 문체적으로 더 적합합니다. 이전 예제를 다시 작성하여 이를 보여 줍니다. 이 경우 그림 개체에 “add_subplot” 메서드를 적용 해야 합니다. Matplotlib는 입력하여 볼 수있는 미리 만들어진 스타일과 함께 제공됩니다 : plt.subplots에서 공유 = True 설정은 두 서브 플롯 사이의 Y 축을 공유합니다. 좀 더 진보 된 서브 플롯 기능을 설명하기 위해 파이썬의 표준 라이브러리에서 io, tarfile 및 urllib을 사용하여 압축 된 타르 아카이브에서 추출 한 거시 경제 캘리포니아 주택 데이터를 가져옵니다. 예를 들어 x 및 y 위치를 0.65(즉, 너비의 65%에서 시작하여 그림 높이의 65%에서 시작)로 설정하고 x 및 y 익스텐스를 0.2(즉, ) 0.2로 설정하여 다른 축의 오른쪽 상단 모서리에 인세트 축을 만들 수 있습니다. 축의 크기는 너비의 20%와 그림 높이의 20%입니다: 각 서브플롯에 대한 매개변수를 설정해야 하는 경우 axs.flat에서 축을 사용하여 2D 그리드의 모든 서브플롯을 반복하는 것이 편리합니다.

이 문서는 이론을 예제와 혼합하는 matplotlib에 대한 초급에서 중급 수준의 연습입니다. 예제로 배우는 것은 대단히 통찰력이 있을 수 있지만, 라이브러리의 내부 작업 및 레이아웃에 대한 표면적 이해도 도움이 됩니다. “도끼는 단일 matplotlib.axes.axes 오브젝트 또는 둘 이상의 서브플롯이 생성된 경우 축 오브젝트의 배열이 될 수 있습니다.” 인수없이 서브플롯() 도형과 단일 축을 반환합니다. pyplot.subplots는 개별 플롯이 생성되는 방법을 합리적으로 제어하면서 단일 호출로 도형과 서브플롯 그리드를 만듭니다. 고급 사용 사례의 경우 보다 일반적인 서브플롯 레이아웃에 GridSpec을 사용하거나 그림 내의 임의의 위치에 서브플롯을 추가하기 위해 Figure.add_subplot을 사용할 수 있습니다. 위의 경우 는 plt.subplots()의 두 결과 각각에 별도의 변수를 할당하기 위해 이터러블 언패기를 활용했습니다. 여기서는 인수를 서브플롯()에 전달하지 않았습니다. 기본 호출은 서브플롯(nrows=1, ncols=1)입니다. 따라서 도끼는 단일 축서브플롯 오브젝트입니다. 그리고 그림은 행과 열로 정렬 된 축이라고 하는 내부에 하나 이상의 서브플롯을 가질 수 있습니다.

모든 그림에는 적어도 하나의 축이 있습니다. (이 축을 X 축및 Y축과 혼동하지 마십시오. 일반 그리드를 넘어 여러 행과 열에 걸쳐 있는 서브플롯으로 이동하려면 plt. GridSpec()은 최상의 도구입니다.