Matplotlib에서 축 제거하기: 체계적인 가이드
Published 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에서도 사용해 볼 수 있습니다.
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()
함수를 사용하여 제목을 추가 할 수 있습니다.