소개
이 튜토리얼에서는 Matplotlib 을 사용하여 플롯을 생성하고 사용자 정의하는 방법을 배우겠습니다. Matplotlib 은 Python 에서 정적, 애니메이션 및 대화형 시각화를 생성하기 위한 광범위한 도구를 제공하는 Python 라이브러리입니다.
VM 팁
VM 시작이 완료되면, 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
Matplotlib 및 NumPy 라이브러리 가져오기
첫 번째 단계는 라이브러리를 가져오는 것입니다. Matplotlib 의 pyplot 모듈과 numpy 라이브러리를 사용합니다.
import matplotlib.pyplot as plt
import numpy as np
Figure 및 Subplot 생성
다음 단계는 figure 와 subplot 을 생성하는 것입니다. subplots 함수를 사용하여 나란히 두 개의 subplot 이 있는 figure 를 생성합니다.
fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(7, 4))
Aspect Ratio 설정 및 데이터 플로팅
이제 set_aspect 함수를 사용하여 첫 번째 subplot 의 aspect ratio 를 1 로 설정하고, plot 함수를 사용하여 데이터를 플로팅합니다.
ax0.set_aspect(1)
ax0.plot(np.arange(10))
축 레이블 사용자 정의
축 레이블을 사용자 정의하기 위해 set_xlabel 및 set_ylabel 함수를 사용할 수 있습니다. "\n" 문자를 사용하여 줄 바꿈을 추가할 수도 있습니다.
ax0.set_xlabel('this is a xlabel\n(with newlines!)')
ax0.set_ylabel('this is vertical\ntest', multialignment='center')
플롯에 텍스트 추가
text 함수를 사용하여 플롯에 텍스트를 추가할 수 있습니다. 텍스트의 위치, 회전, 수평 및 수직 정렬, 그리고 다중 정렬 (multialignment) 을 지정할 수 있습니다.
ax0.text(2, 7, 'this is\nyet another test',
rotation=45,
horizontalalignment='center',
verticalalignment='top',
multialignment='center')
그리드 선 추가
플롯에 그리드 선을 추가하려면 grid 함수를 사용할 수 있습니다.
ax0.grid()
두 번째 서브플롯에 여러 줄 텍스트 추가
두 번째 서브플롯에서는 text 함수를 사용하여 여러 줄의 텍스트를 추가합니다. 텍스트의 위치, 크기, 수직 및 수평 정렬, 그리고 경계 상자 (bbox) 를 지정할 수 있습니다.
ax1.text(0.29, 0.4, "Mat\nTTp\n123", size=18,
va="baseline", ha="right", multialignment="left",
bbox=dict(fc="none"))
ax1.text(0.34, 0.4, "Mag\nTTT\n123", size=18,
va="baseline", ha="left", multialignment="left",
bbox=dict(fc="none"))
ax1.text(0.95, 0.4, "Mag\nTTT$^{A^A}$\n123", size=18,
va="baseline", ha="right", multialignment="left",
bbox=dict(fc="none"))
X 축 레이블 사용자 정의
x 축 레이블을 사용자 정의하려면 set_xticks 함수를 사용할 수 있습니다. 눈금의 위치와 레이블을 지정할 수 있습니다.
ax1.set_xticks([0.2, 0.4, 0.6, 0.8, 1.],
labels=["Jan\n2009", "Feb\n2009", "Mar\n2009", "Apr\n2009",
"May\n2009"])
두 번째 서브플롯에 수평선 및 제목 추가
두 번째 서브플롯에 수평선을 추가하려면 axhline 함수를 사용할 수 있습니다. 또한 set_title 함수를 사용하여 서브플롯에 제목을 추가할 수 있습니다.
ax1.axhline(0.4)
ax1.set_title("test line spacing for multiline text")
서브플롯 위치 조정 및 플롯 표시
마지막으로, subplots_adjust 함수를 사용하여 서브플롯의 위치를 조정하고 show 함수를 사용하여 플롯을 표시할 수 있습니다.
fig.subplots_adjust(bottom=0.25, top=0.75)
plt.show()
요약
이 튜토리얼에서는 Matplotlib 을 사용하여 플롯을 생성하고 사용자 정의하는 방법을 배웠습니다. Figure 와 서브플롯을 생성하고, 데이터를 플롯하고, 축 레이블을 사용자 정의하고, 플롯에 텍스트를 추가하고, 그리드 선을 추가하고, x 축 레이블을 사용자 정의하고, 플롯에 수평선과 제목을 추가하고, 서브플롯 위치를 조정하는 방법을 다루었습니다. Matplotlib 은 Python 에서 정적, 애니메이션 및 대화형 시각화를 생성하기 위한 광범위한 도구를 제공하며, 데이터 시각화를 위한 강력한 라이브러리입니다.