본문 바로가기
Python/matplotlib

matplotlib UserWarning: Tight layout not applied 오류 해결하기

by PySun 2024. 11. 7.
반응형

소개

머리속에 그린 멋진 그래프를 만들려고 할 때, 만약 'UserWarning: Tight layout not applied'와 같은 경고 메시지를 보게 된다면, 그것은 당신의 그래프가 제대로 최적화되지 않았다는 신호입니다. 이 경고는 matplotlib의 tight_layout 기능이 제대로 적용되지 않았을 때 발생하는데, 주로 서브플롯의 레이아웃이 서로 겹침으로 인해 발생합니다. 이 글에서는 이 문제의 원인과 해결 방법에 대해 알아보겠습니다.

에러 발생 예시 코드

먼저, 'UserWarning: Tight layout not applied' 경고가 발생할 수 있는 간단한 예시 코드를 살펴보겠습니다.

import matplotlib.pyplot as plt

# 여러 개의 서브플롯 생성
fig, axs = plt.subplots(2, 2)

# 각 서브플롯에 데이터 추가
axs[0, 0].plot([1, 2, 3], [1, 4, 9])
axs[0, 1].plot([1, 2, 3], [1, 2, 3])
axs[1, 0].plot([1, 2, 3], [9, 4, 1])
axs[1, 1].plot([1, 2, 3], [4, 1, 2])

# tight_layout 사용
plt.tight_layout()
plt.show()

에러 해결 방법

1. 서브플롯의 크기 조정

서브플롯이 너무 많은 경우, 각 서브플롯의 크기를 조정하여 공간을 더 확보하는 것이 좋습니다. fig, axs = plt.subplots(2, 2, figsize=(10, 8))와 같은 방식으로 figsize를 설정할 수 있습니다.

import matplotlib.pyplot as plt

# 서브플롯 크기 조정
fig, axs = plt.subplots(2, 2, figsize=(10, 8))

# 데이터 추가
axs[0, 0].plot([1, 2, 3], [1, 4, 9])
axs[0, 1].plot([1, 2, 3], [1, 2, 3])
axs[1, 0].plot([1, 2, 3], [9, 4, 1])
axs[1, 1].plot([1, 2, 3], [4, 1, 2])

# tight_layout 사용
plt.tight_layout()
plt.show()

2. pAdjust 위치 사용

tight_layout을 사용하는 대신에 plt.subplots_adjust()를 사용하여 서브플롯 간의 간격을 개별적으로 조정할 수 있습니다.

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)

# 데이터 추가
axs[0, 0].plot([1, 2, 3], [1, 4, 9])
axs[0, 1].plot([1, 2, 3], [1, 2, 3])
axs[1, 0].plot([1, 2, 3], [9, 4, 1])
axs[1, 1].plot([1, 2, 3], [4, 1, 2])

# 서브플롯 간격 조정
plt.subplots_adjust(hspace=0.5, wspace=0.5)
plt.show()

마무리

이 글에서는 matplotlib에서 발생하는 'UserWarning: Tight layout not applied' 경고 메시지의 간단한 해결 방법을 살펴보았습니다. 서브플롯의 크기를 조정하거나 간격을 조정하여 그래프를 더 깔끔하게 만들어 보세요. 매력적인 그래프는 단순하지만 효과적인 요소로 정보를 더 잘 전달할 수 있습니다. 계속해서 데이터 시각화를 즐기세요!

반응형