Matplotlib 맞춤형 시각화 생성

Beginner

This tutorial is from open-source community. Access the source code

소개

이 튜토리얼에서는 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_xlabelset_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 에서 정적, 애니메이션 및 대화형 시각화를 생성하기 위한 광범위한 도구를 제공하며, 데이터 시각화를 위한 강력한 라이브러리입니다.