메모
전체 예제 코드를 다운로드 하려면 여기 를 클릭 하십시오.
# 을 사용하여 여러 서브플롯 만들기plt.subplots
pyplot.subplots
단일 호출로 그림과 서브플롯 그리드를 생성하는 동시에 개별 플롯이 생성되는 방법에 대한 합리적인 제어를 제공합니다. 고급 사용 사례 의 경우 GridSpec
보다 일반적인 서브플롯 레이아웃에 사용하거나 Figure.add_subplot
그림 내의 임의 위치에 서브플롯을 추가하는 데 사용할 수 있습니다.
하나의 서브플롯만 있는 그림 #
subplots()
인수가 없으면 a Figure
및 single 을
반환합니다 Axes
.
이것은 실제로 단일 Figure 및 Axes를 생성하는 가장 간단하고 권장되는 방법입니다.
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('A single plot')
![단일 플롯](/stable/_images/sphx_glr_subplots_demo_001.png)
Text(0.5, 1.0, 'A single plot')
한 방향으로 서브플롯 쌓기 #
의 처음 두 선택적 인수 pyplot.subplots
는 서브플롯 그리드의 행과 열 수를 정의합니다.
한 방향으로만 axs
쌓을 때 생성된 Axes 목록을 포함하는 1D numpy 배열이 반환됩니다.
fig, axs = plt.subplots(2)
fig.suptitle('Vertically stacked subplots')
axs[0].plot(x, y)
axs[1].plot(x, -y)
![세로로 쌓인 서브플롯](/stable/_images/sphx_glr_subplots_demo_002.png)
[<matplotlib.lines.Line2D object at 0x7f2d00efd510>]
Axes를 몇 개만 생성하는 경우 각 Axes에 대한 전용 변수에 즉시 압축을 푸는 것이 편리합니다. 그렇게 ax1
하면 보다 장황한 대신 사용할 수 있습니다 axs[0]
.
fig, (ax1, ax2) = plt.subplots(2)
fig.suptitle('Vertically stacked subplots')
ax1.plot(x, y)
ax2.plot(x, -y)
![세로로 쌓인 서브플롯](/stable/_images/sphx_glr_subplots_demo_003.png)
[<matplotlib.lines.Line2D object at 0x7f2d00a95b70>]
side-by-side 서브플롯을 얻으려면 하나의 행과 두 개의 열에 대한 매개변수를 전달하십시오.1, 2
fig, (ax1, ax2) = plt.subplots(1, 2)
fig.suptitle('Horizontally stacked subplots')
ax1.plot(x, y)
ax2.plot(x, -y)
![가로로 쌓인 서브플롯](/stable/_images/sphx_glr_subplots_demo_004.png)
[<matplotlib.lines.Line2D object at 0x7f2cfb43d330>]
두 방향으로 서브플롯 쌓기 #
두 방향으로 쌓을 때 반환 axs
되는 것은 2D NumPy 배열입니다.
각 서브플롯에 대한 매개변수를 설정해야 하는 경우 를 사용하여 2D 그리드의 모든 서브플롯을 반복하는 것이 편리합니다 .for ax in axs.flat:
fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[0, 0].set_title('Axis [0, 0]')
axs[0, 1].plot(x, y, 'tab:orange')
axs[0, 1].set_title('Axis [0, 1]')
axs[1, 0].plot(x, -y, 'tab:green')
axs[1, 0].set_title('Axis [1, 0]')
axs[1, 1].plot(x, -y, 'tab:red')
axs[1, 1].set_title('Axis [1, 1]')
for ax in axs.flat:
ax.set(xlabel='x-label', ylabel='y-label')
# Hide x labels and tick labels for top plots and y ticks for right plots.
for ax in axs.flat:
ax.label_outer()
![축 [0, 0], 축 [0, 1], 축 [1, 0], 축 [1, 1]](/stable/_images/sphx_glr_subplots_demo_005.png)
2D에서도 튜플 압축 해제를 사용하여 모든 서브플롯을 전용 변수에 할당할 수 있습니다.
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)
fig.suptitle('Sharing x per column, y per row')
ax1.plot(x, y)
ax2.plot(x, y**2, 'tab:orange')
ax3.plot(x, -y, 'tab:green')
ax4.plot(x, -y**2, 'tab:red')
for ax in fig.get_axes():
ax.label_outer()
![열당 x, 행당 y 공유](/stable/_images/sphx_glr_subplots_demo_006.png)
극축 #
subplot_kw 매개변수 는 서브플롯 속성 을 pyplot.subplots
제어합니다( 참조 Figure.add_subplot
). 특히 극좌표 축 그리드를 만드는 데 사용할 수 있습니다.
![서브플롯 데모](/stable/_images/sphx_glr_subplots_demo_013.png)
스크립트의 총 실행 시간: ( 0분 7.774초)