Skip to content

Matplotlib에서 축 제거하기: 체계적인 가이드

Updated on

Matplotlib은 데이터 시각화를 위한 강력한 파이썬 라이브러리입니다. 그러나 효과적인 플롯을 만드는 데에는 축과 같은 특정 요소를 제거해야 할 때가 있습니다. Matplotlib에서 축을 제거하는 방법을 궁금해 마시면, 이 가이드는 완벽한 시작점이 될 것입니다. Matplotlib의 자체 문서 및 커뮤니티 지혜에 따라 불필요한 요소를 제거하여 깔끔하고 효과적인 차트를 만드는 방법에 대해 자세히 알아보겠습니다.

시작하기 전에: Matplotlib에서의 축이란?

시작하기 전에, Matplotlib에서 '축'이란 무엇을 의미하는지 이해하는 것이 중요합니다. '축'이란 그래프의 x, y 축을 가리키며, 레이블, 눈금 및 플롯 영역을 둘러싸는 선을 포함합니다. 축을 제거하면 데이터 표시를 위한 추가적인 방해 요소 없이 깨끗하고 미니멀한 플롯이 얻어집니다.

축을 제거하는 이유는?

Matplotlib 플롯에서 축을 제거해야 할 몇 가지 이유가 있습니다. 아마도 가장 일반적인 이유는 더 깨끗하고 단순한 시각적 모양을 만들기 위함입니다. 축, 그리드 라인 및 레이블을 제거함으로써 데이터에 집중할 수 있습니다.

축 제거: 기본 사항

이제 Matplotlib에서 축을 제거하는 방법에 대해 자세히 살펴보겠습니다. 과정은 매우 간단하며, 몇 줄의 코드만으로 수행됩니다. 이 기본적인 예제를 살펴보십시오.

import matplotlib.pyplot as plt
 
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
 
plt.plot(x, y)
plt.gca().set_axis_off()
plt.show()

이 스크립트에서는 gca() 함수를 사용하여 현재 축을 가져온 다음 set_axis_off() 메서드를 호출하여 축을 끕니다. 이 스크립트를 실행한 후 축이 없는 선 그래프가 표시됩니다.

축 제거 및 그림 저장

축 없이 그림을 저장하려면 어떻게 해야 할까요? Matplotlib은 플롯을 파일로 저장할 수 있는 간단한 메서드를 제공합니다. 축이 없는 플롯을 저장하는 방법은 다음과 같습니다.

plt.plot(x, y)
plt.gca().set_axis_off()
plt.savefig('my_plot.png', bbox_inches='tight', pad_inches = 0)
plt.close()

savefig() 함수를 사용하여 현재 그림을 저장하고 파일 이름 'my_plot.png'을 인수로 전달합니다. bbox_inches='tight'pad_inches=0 매개변수는 저장된 그림의 주변 여백을 제거합니다. 이 스크립트를 실행하면, 축이 없는 저장된 플롯이 포함된 'my_plot.png'라는 새 파일이 현재 디렉토리에 나타납니다.

고급: 서브 플롯에서 축 제거

지금까지 하나의 그래프에서 축을 어떻게 제거하는지에 대해 논의해왔습니다. 그러나 여러 서브 플롯이 있고 모두에서 축을 제거하거나 특정 서브 플롯에서 축을 제거하려면 어떻게 하면 될까요? 다음은 그 방법입니다.

fig, axs = plt.subplots(2, 2)
for ax in axs.flat:
    ax.set_axis_off()
 
plt.savefig('subplot_no_axes.png', bbox_inches='tight', pad_inches = 0)
plt.close()

이 코드에서는 plt.subplots() 함수를 사용하여 2x2 그리드의 서브플롯을 생성한 다음 각 서브플롯에서 반복문(axs.flat을 사용하여 접근)을 사용하여 ax.set_axis_off()를 사용하여 축을 제거합니다. 그림은 예전과 같이 저장되어 하나의 이미지 파일로 생성되며, 각각 축이 없는 여러 서브플롯이 포함됩니다.

축 제거 대체 방법: 축 모양 조정

일부 경우에는 축을 유지하되 덜 눈에 띄게 만드는 것이 좋을 수 있습니다. Matplotlib은 축의 외형을 사용자 정의하는 다양한 옵션을 제공합니다. 다음은 축의 선 두께를 줄이고 색상을 변경하여 축을 덜 눈에 띄게 만드는 방법의 예입니다.

ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_linewidth(0.5)
ax.spines['left'].set_linewidth(0.5)
ax.spines['right'].set_color('none')

이 스크립트에서는 plt.gca() 를 사용하여 현재 축을 먼저 가져옵니다. 그런 다음 spines 속성을 사용하여 축의 네 면('top', 'bottom', 'left', 'right') 각각에 액세스합니다. 그런 다음 set_color('none') 을 호출하여 축의 위쪽 및 오른쪽 면을 제거하고 set_linewidth(0.5) 를 호출하여 아래쪽 및 왼쪽 면을 얇게 만듭니다.

Matplotlib 대체 방법: PyGWalker를 사용한 데이터 시각화

pandas 데이터프레임을 시각화하기 위해 Matplotlib을 사용하는 것 외에도 Open Source python 라이브러리 PyGWalker (opens in a new tab)를 사용하여 데이터 시각화를 쉽게 만들 수 있습니다.

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Kaggle Notebook/Google Colab에서도 사용해 볼 수 있습니다.

Run PyGWalker in Kaggle Notebook (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)Give PyGWalker a ⭐️ on GitHub (opens in a new tab)
Run PyGWalker in Kaggle Notebook (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)

PyGWalker는 Open Source 커뮤니티의 지원에 기반하여 구축되었습니다. PyGWalker Github (opens in a new tab)에서 star를 눌러주세요!

마무리

Matplotlib에서 축을 제거하면 데이터에 초점을 맞추는 것으로 더 깨끗하고 효과적인 시각화를 만들 수 있습니다. 이 가이드는 단일 플롯이나 여러 서브플롯에서 축을 제거하는 방법과 축의 모양을 조정하여 덜 눈에 띄게 만드는 방법을 보여주었습니다. 이러한 기술을 사용하여 Matplotlib을 사용하여 멋진 미니멀리스트 플롯을 만들 준비가 되었습니다.

FAQ

Q: Matplotlib에서 축을 제거하는 것이 권장되지 않는 경우가 있나요?

네, 축을 제거하는 것은 때로는 데이터의 척도나 비율이 중요한 경우에 플롯을 해석하기 어렵게 만들 수 있습니다. 축을 제거할지 여부를 결정할 때 항상 대상 청중의 요구사항과 데이터의 특성을 고려해야합니다.

Q: Matplotlib을 기반으로하는 Seaborn 플롯에서 축을 제거할 수 있나요?

네, Matplotlib 플롯과 동일한 방법으로 Seaborn 플롯에서 축을 제거할 수 있습니다. Seaborn은 하부에서 Matplotlib을 사용하기 때문에 동일한 명령이 작동합니다.

Q: 축을 제거한 후에도 플롯에 제목을 추가 할 수 있나요?

네, 축을 제거하더라도 플롯에 제목을 추가할 수 있습니다. 언제든지 plt.title() 함수를 사용하여 제목을 추가 할 수 있습니다.