Matplotlib 에서 다른 서브 플롯 크기를 만드는 방법

Jinku Hu 2023년1월30일
  1. gridspec 방법
  2. gridspec_kw 방법
  3. subplot2grid 방법
Matplotlib 에서 다른 서브 플롯 크기를 만드는 방법

우리는 gridspec_kw,gridspecsubplot2grid 를 사용하여 다른 크기의 서브 플롯을 만들기 위해 다른 비율의 서브 플롯을 지정할 수 있습니다.

Matplotlib 다른 서브 플롯 크기

gridspec 방법

import matplotlib.pyplot as plt
from matplotlib import gridspec

fig = plt.figure()
spec = gridspec.GridSpec(ncols=2, nrows=1, width_ratios=[2, 1])

ax0 = fig.add_subplot(spec[0])
ax0.plot(range(5), range(5, 10))
ax1 = fig.add_subplot(spec[1])
ax1.plot(range(5), range(5, 10))

plt.show()

gridspec 모듈의 GridSpec 은 서브 플로트 그리드의 지오메트리를 지정합니다. 너비와 높이 비율과 같은 행, 열 및 레이아웃 매개 변수 수를 설정할 수 있습니다.

spec = gridspec.GridSpec(ncols=2, nrows=1, width_ratios=[2, 1])

그림에 두 개의 열과 한 개의 행이 있으며 너비 비율은 2:1 입니다.

ax0 = fig.add_subplot(spec[0])

ax0 객체는 위에서 정의한대로 Geomerty 에서 0위치를 대신하거나 spec[0, 0]을 사용하여 더 명확하게 만들 수 있습니다.

gridspec_kw 방법

import matplotlib.pyplot as plt

fig, ax = plt.subplots(
    2, 2, gridspec_kw={"width_ratios": [2, 1], "height_ratios": [1, 2]}
)

ax[0][0].plot(range(5), range(5, 10))
ax[0][1].plot(range(5), range(10, 5, -1))
ax[1][0].plot(range(5), range(5, 10))
ax[1][1].plot(range(5), range(10, 5, -1))

plt.show()

Matplotlib 다른 서브 플롯 Size_gridspec_kw

gridspec_kw 는 서브 플롯의 거더를 특정하기 위해 GridSpec 생성자에 대한 키워드가있는 사전입니다.

너비 비율은 2:1 로 지정되고 높이 비율은 1:2 로 설정됩니다.

subplot2grid 방법

subplot2grid는 서브 플롯이 0 기반 그리드 인덱싱에서 여러 셀을 사용하도록합니다.

def subplot2grid(shape,
                 loc,
                 rowspan=1,
                 colspan=1,
                 fig=None,
                 **kwargs):

shape 는 격자 모양이며 첫 번째 요소는 행 수이고 두 번째는 열 수인 2 개의 정수 시퀀스입니다.

loc 은 그리드에 axis 를 놓을 위치입니다. 첫 번째 항목은 행 번호이고 두 번째 요소는 열 번호 인 2 개의 정수 시퀀스입니다.

rowspancolspan 은 축이 오른쪽 (rowspan) 또는 아래쪽 (colspan)에 걸쳐있는 행 또는 열의 수입니다.

작업 코딩 예:

import matplotlib.pyplot as plt

fig = plt.figure()

ax0 = plt.subplot2grid((1, 5), (0, 0), colspan=3)
ax1 = plt.subplot2grid((1, 5), (0, 3), colspan=2)

ax0.plot(range(5), range(5, 10))
ax1.plot(range(5), range(10, 5, -1))

plt.show()

Matplotlib 다른 서브 플롯 Size_subplot2grid

ax0 = plt.subplot2grid((1, 5), (0, 0), colspan=3)
ax1 = plt.subplot2grid((1, 5), (0, 3), colspan=2)

격자는 1 행 5 열의(1, 5)모양입니다.

ax0(0, 0)셀에 배치되고 3 개의 열을 취하고 ax1(0, 3)에 배치되고 다른 두 개의 열을 사용합니다.

작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

관련 문장 - Matplotlib Subplot