Matplotlib 선 플롯 사용자 정의

MatplotlibBeginner
지금 연습하기

소개

Matplotlib 은 정적, 애니메이션 및 대화형 시각화를 생성하는 강력한 Python 라이브러리입니다. 기본적인 플롯을 만드는 것은 간단하지만, 데이터를 명확하고 이해하기 쉬우며 시각적으로 매력적으로 만들기 위해서는 사용자 정의가 중요합니다.

이 실습에서는 간단한 선 플롯으로 시작하여 점진적으로 사용자 정의할 것입니다. 선 색상 변경, 데이터 포인트에 마커 추가, 선 스타일 수정, 플롯에 제목 추가, 축 제한 조정 방법을 배우게 됩니다.

이 실습 환경은 WebIDE 를 사용하므로 별도의 GUI 창에 플롯을 표시할 수 없습니다. 대신 plt.savefig()를 사용하여 모든 플롯을 이미지 파일로 저장할 것입니다. 그런 다음 IDE 내에서 생성된 이미지를 직접 볼 수 있습니다.

시작해 봅시다!

plt.plot(color='red') 를 사용하여 사용자 정의 색상으로 선 플롯 그리기

이 단계에서는 플롯의 선 색상을 변경하는 방법을 배웁니다. 기본적으로 Matplotlib 은 미리 정의된 색상 세트를 순환합니다. 하지만 plt.plot() 함수의 color 매개변수를 사용하여 원하는 색상을 쉽게 지정할 수 있습니다.

먼저 사인파의 기본 플롯을 만들어 보겠습니다. NumPy 를 사용하여 데이터 포인트를 생성합니다.

왼쪽 파일 탐색기에서 ~/project 디렉토리에 있는 main.py 파일을 엽니다. 해당 내용을 다음 코드로 바꾸세요. 이 코드는 사인파를 플롯하고 빨간색으로 색칠합니다.

import matplotlib.pyplot as plt
import numpy as np

## 플롯 데이터 생성
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## 사용자 정의 색상으로 데이터 플롯
plt.plot(x, y, color='red')

## 플롯을 파일로 저장
plt.savefig('/home/labex/project/plot_color.png')

print("Plot saved as plot_color.png")

main.py 파일을 업데이트한 후 저장하세요. 이제 IDE 하단의 터미널에서 스크립트를 실행하세요.

python3 main.py

터미널에서 다음 출력을 볼 수 있습니다.

Plot saved as plot_color.png

~/project 디렉토리에 plot_color.png라는 새 파일이 나타납니다. 이 파일을 더블 클릭하여 열면 첫 번째 사용자 정의 플롯을 볼 수 있습니다. 빨간색 사인파가 표시됩니다.

Plot color

plt.plot(marker='o') 를 사용하여 마커 추가

이 단계에서는 데이터 포인트에 마커를 추가하는 방법을 배웁니다. 마커는 선상의 각 데이터 포인트의 정확한 위치를 강조하는 데 유용하며, 데이터 포인트가 드문드문 있을 때 특히 도움이 될 수 있습니다.

plt.plot() 함수의 marker 매개변수를 사용하여 마커를 추가할 수 있습니다. 'o' (원), 'x' (십자), '*' (별) 등 다양한 마커 스타일을 사용할 수 있습니다.

이전 단계의 진행 상황을 유지하기 위해 main.py 파일을 수정하여 플롯에 원형 마커를 추가해 보겠습니다. 또한 출력 파일 이름을 plot_marker.png로 변경하겠습니다.

main.py 파일을 다음 코드로 업데이트하세요.

import matplotlib.pyplot as plt
import numpy as np

## 플롯 데이터 생성
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## 사용자 정의 색상 및 마커로 데이터 플롯
plt.plot(x, y, color='red', marker='o')

## 새 파일로 플롯 저장
plt.savefig('/home/labex/project/plot_marker.png')

print("Plot saved as plot_marker.png")

파일을 저장하고 터미널에서 스크립트를 다시 실행하세요.

python3 main.py

터미널에 다음과 같은 출력이 표시됩니다.

Plot saved as plot_marker.png

이제 파일 탐색기에서 새 파일 plot_marker.png를 찾아 더블 클릭하세요. 빨간색 선에 각 데이터 포인트마다 작은 원이 있는 것을 볼 수 있습니다.

Plot marker

plt.plot(linestyle='--') 를 사용하여 선 스타일 설정

이 단계에서는 선 자체의 스타일을 변경하는 방법을 배웁니다. 기본값은 실선이지만, 여러 선을 구분하거나 단순히 미적인 이유로 점선, 파선 등으로 변경할 수 있습니다.

이는 linestyle 매개변수 (또는 축약형 ls) 를 사용하여 수행됩니다. 일반적인 스타일에는 점선에 대한 '--', 점선에 대한 ':', 파선에 대한 '-.' 등이 있습니다.

플롯을 점선으로 업데이트해 보겠습니다. main.py 파일을 아래와 같이 수정하세요. 출력 파일 이름도 plot_linestyle.png로 변경하겠습니다.

import matplotlib.pyplot as plt
import numpy as np

## 플롯 데이터 생성
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## 사용자 정의 색상, 마커 및 선 스타일로 데이터 플롯
plt.plot(x, y, color='red', marker='o', linestyle='--')

## 새 파일로 플롯 저장
plt.savefig('/home/labex/project/plot_linestyle.png')

print("Plot saved as plot_linestyle.png")

변경 사항을 저장하고 터미널에서 스크립트를 실행하세요.

python3 main.py

확인 메시지가 표시됩니다.

Plot saved as plot_linestyle.png

새로 생성된 plot_linestyle.png 파일을 열어보세요. 마커를 연결하는 선이 이전의 실선 대신 점선으로 변경된 것을 확인할 수 있습니다.

Plot linestyle

plt.title() 를 사용하여 제목 추가

제목이 없는 플롯은 모호할 수 있습니다. 플롯을 보는 사람이 플롯이 무엇을 나타내는지 즉시 이해할 수 있도록 설명적인 제목을 지정하는 것이 중요합니다. Matplotlib 에서는 plt.title() 함수를 사용하여 제목을 추가할 수 있습니다.

이 단계에서는 플롯에 "Sine Wave"라는 제목을 추가합니다. 이 함수는 그림을 저장하기 전에 호출됩니다.

plt.title() 호출을 포함하도록 main.py 파일을 수정하세요. 새 출력 파일은 plot_title.png가 됩니다.

import matplotlib.pyplot as plt
import numpy as np

## 플롯 데이터 생성
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## 사용자 정의로 데이터 플롯
plt.plot(x, y, color='red', marker='o', linestyle='--')

## 플롯에 제목 추가
plt.title('Sine Wave')

## 새 파일로 플롯 저장
plt.savefig('/home/labex/project/plot_title.png')

print("Plot saved as plot_title.png")

파일을 저장하고 스크립트를 실행하세요.

python3 main.py

출력은 다음과 같습니다.

Plot saved as plot_title.png

plot_title.png를 열어 플롯을 확인하세요. 이제 상단에 "Sine Wave"라는 제목이 표시되어야 합니다.

Plot title

plt.xlim() 및 plt.ylim() 을 사용하여 축 범위 조정

때로는 플롯의 특정 영역에 집중하거나 데이터 주변에 약간의 여백을 추가하고 싶을 수 있습니다. plt.xlim()plt.ylim() 함수를 사용하여 각각 x 축과 y 축의 범위를 제어할 수 있습니다.

이 마지막 단계에서는 사인파의 일부를 "확대"하도록 축을 조정합니다. x 축은 0 에서 5 까지, y 축은 -1.5 에서 1.5 까지로 설정합니다. 이렇게 하면 플롯에 수직 여백이 생깁니다.

main.py 파일을 최종 버전의 코드로 업데이트하세요. 출력은 plot_final.png에 저장됩니다.

import matplotlib.pyplot as plt
import numpy as np

## 플롯 데이터 생성
x = np.arange(0, 10, 0.1)
y = np.sin(x)

## 사용자 정의로 데이터 플롯
plt.plot(x, y, color='red', marker='o', linestyle='--')

## 제목 추가
plt.title('Sine Wave')

## 축 범위 조정
plt.xlim(0, 5)
plt.ylim(-1.5, 1.5)

## 최종 플롯을 파일로 저장
plt.savefig('/home/labex/project/plot_final.png')

print("Plot saved as plot_final.png")

파일을 저장하고 마지막으로 스크립트를 실행하세요.

python3 main.py

최종 확인 메시지가 표시됩니다.

Plot saved as plot_final.png

이제 plot_final.png를 열어보세요. 이전 플롯과 비교해 보세요. x 축이 이제 5 에서 끝나고, 새로운 y 축 범위로 인해 사인파 위아래에 더 많은 공간이 생긴 것을 볼 수 있습니다.

Plot final

요약

이 실습을 완료하신 것을 축하드립니다! Matplotlib 기본 선 플롯을 더 유익하고 시각적으로 매력적으로 만들기 위한 사용자 정의 방법을 성공적으로 배우셨습니다.

이 실습에서는 다음을 연습했습니다.

  • plt.plot()color 매개변수를 사용하여 선 색상 변경하기.
  • marker 매개변수를 사용하여 데이터 포인트 마커 추가하기.
  • linestyle 매개변수를 사용하여 선 스타일 설정하기.
  • plt.title() 함수를 사용하여 설명적인 제목 추가하기.
  • plt.xlim()plt.ylim()을 사용하여 축 범위 조정하기.

이러한 기술은 데이터 분석 및 프레젠테이션을 위한 전문적인 품질의 플롯을 만드는 데 필수적입니다. 다른 색상, 마커 및 선 스타일을 시도하거나 plt.xlabel()plt.ylabel()을 사용하여 x 축 및 y 축에 레이블을 추가하는 등 더 자유롭게 실험해 보세요.