Matplotlib 기본 선 그래프

MatplotlibBeginner
지금 연습하기

소개

Matplotlib 은 Python 에서 정적, 애니메이션 및 대화형 시각화를 만드는 포괄적인 라이브러리입니다. 가장 인기 있는 데이터 시각화 라이브러리 중 하나이며 Python 으로 작업하는 모든 데이터 과학자 또는 분석가에게 필수적입니다.

선 그래프 (line plot) 는 가장 기본적이고 널리 사용되는 그래프 유형 중 하나입니다. '마커 (markers)'라고 불리는 일련의 데이터 포인트를 직선 세그먼트로 연결하여 정보를 표시합니다. 종종 시간 간격에 따른 데이터의 추세 (시계열, time series) 를 시각화하는 데 사용되므로 선은 종종 연대순으로 그려집니다.

이 실습에서는 처음부터 간단한 선 그래프를 만드는 방법을 배우게 됩니다. 데이터 준비, 플로팅, 축에 설명 레이블 추가, 그리고 마지막으로 LabEx 환경에서 직접 볼 수 있는 이미지 파일로 플롯을 저장하는 전체 과정을 다룰 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 84%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

x 및 y 데이터 리스트 준비

이 단계에서는 플롯을 위한 데이터를 준비합니다. 무언가를 시각화하기 전에 데이터가 필요합니다. 간단한 2D 선 그래프의 경우 두 가지 데이터 세트가 필요합니다. 하나는 x 축 (수평 축) 용이고 다른 하나는 y 축 (수직 축) 용입니다.

데이터를 저장하기 위해 Python 리스트를 사용할 것입니다. 몇 년간의 인구 증가를 나타내는 간단한 데이터 세트를 만들어 보겠습니다.

먼저 왼쪽 파일 탐색기에서 ~/project 디렉토리에 있는 main.py 파일을 엽니다. 이 파일에는 필요한 import 문이 이미 포함되어 있습니다.

이제 main.py에 다음 코드를 추가하여 xy 두 개의 리스트를 만듭니다.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

여기서 x는 연도를 나타내고 y는 각 해당 연도의 인구를 백만 단위로 나타냅니다. 이 두 리스트는 선 그래프의 좌표로 사용됩니다.

plt.plot(x, y) 를 사용하여 선 그래프 그리기

이 단계에서는 준비한 데이터를 사용하여 실제 그래프를 생성합니다. 이전 단계에서 plt로 가져온 Matplotlib 의 pyplot 모듈은 이 작업을 위해 완벽한 plot()이라는 함수를 제공합니다.

plt.plot() 함수는 두 가지 주요 인수를 받습니다. x 축 데이터와 y 축 데이터입니다. 그런 다음 이 좌표로 정의된 점들을 연결하는 선을 그립니다.

이전 단계에서 생성한 데이터 리스트 바로 뒤에 다음 줄을 main.py 스크립트에 추가합니다.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

이 한 줄의 코드는 Matplotlib 에게 xy 리스트를 좌표로 사용하여 선 그래프를 생성하도록 지시합니다. 하지만 지금 스크립트를 실행해도 아무것도 보이지 않을 것입니다. 아직 레이블을 추가하고 그래프를 파일로 명시적으로 저장해야 합니다.

plt.xlabel() 로 x 축 레이블 추가하기

이 단계에서는 x 축에 레이블을 추가합니다. 레이블이 없는 그래프는 보는 사람이 축이 무엇을 나타내는지 알 수 없기 때문에 종종 의미가 없습니다. 명확하고 유익한 시각화를 만드는 데 중요한 부분입니다.

Matplotlib 은 x 축에 레이블을 추가하기 위해 plt.xlabel() 함수를 제공합니다. 원하는 레이블을 문자열로 이 함수에 전달하기만 하면 됩니다.

그래프에 'Year' 레이블을 추가해 보겠습니다. plt.plot() 호출 뒤에 다음 줄을 main.py 스크립트에 추가합니다.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

## Add x-axis label
plt.xlabel("Year")

이제 그래프의 가로 축이 'Year'로 명확하게 표시됩니다.

plt.ylabel() 로 y 축 레이블 추가하기

이 단계에서는 y 축에 레이블을 추가하여 그래프의 기본 레이블 지정을 완료합니다. x 축과 마찬가지로 y 축에도 설명적인 레이블이 필요하므로 보는 사람이 데이터를 이해할 수 있습니다.

이를 위한 함수는 plt.ylabel()이며, 이는 plt.xlabel()과 정확히 동일하게 작동합니다. 레이블 텍스트를 문자열로 전달합니다.

그래프에 'Population' 레이블을 추가해 보겠습니다. plt.xlabel() 호출 바로 뒤에 다음 줄을 main.py 스크립트에 추가합니다.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

## Add x-axis label
plt.xlabel("Year")

## Add y-axis label
plt.ylabel("Population (in millions)")

이제 두 축 모두 레이블이 지정되어 그래프를 훨씬 더 잘 이해할 수 있습니다.

plt.show() 로 플롯 표시하기

이 마지막 단계에서는 플롯을 생성하고 볼 것입니다. 일반적인 데스크톱 환경에서는 plt.show()를 사용하여 새 창에 플롯을 표시할 수 있습니다. 그러나 LabEx 와 같은 웹 기반 환경에서는 GUI 창을 열 수 없습니다.

대신 plt.savefig() 함수를 사용하여 플롯을 이미지 파일로 저장할 것입니다. 이 함수는 현재 그림을 프로젝트 디렉터리의 파일에 저장합니다.

main.py 스크립트 끝에 다음 줄을 추가합니다. 이렇게 하면 플롯이 line_plot.png라는 PNG 이미지로 저장됩니다.

import matplotlib.pyplot as plt

## Data for plotting
x = [2018, 2019, 2020, 2021, 2022]
y = [10, 12, 15, 18, 22]

## Create the plot
plt.plot(x, y)

## Add x-axis label
plt.xlabel("Year")

## Add y-axis label
plt.ylabel("Population (in millions)")

## Save the plot to a file
plt.savefig("line_plot.png")

이제 WebIDE 에서 터미널을 엽니다 (+ 아이콘을 터미널 패널에서 사용하거나 메뉴 Terminal > New Terminal을 사용). 다음 명령으로 스크립트를 실행합니다.

python3 main.py

명령이 완료된 후 왼쪽에 있는 파일 탐색기에 line_plot.png라는 새 파일이 나타납니다. line_plot.png를 두 번 클릭하여 열면 완성된 선 그래프를 볼 수 있습니다!

Line plot

요약

축하합니다! Matplotlib 을 사용하여 첫 번째 선 그래프를 성공적으로 생성하고 저장했습니다.

이 실습에서는 기본 그래프를 생성하는 기본적인 워크플로를 배웠습니다.

  1. 데이터 준비: x 축과 y 축 데이터를 담을 Python 리스트를 생성했습니다.
  2. 데이터 플로팅: plt.plot()을 사용하여 데이터로부터 선 그래프를 생성했습니다.
  3. 레이블 추가: plt.xlabel()plt.ylabel()을 사용하여 레이블을 추가하여 그래프를 유익하게 만들었습니다.
  4. 플롯 저장: GUI 가 없는 환경에서 필수적인 plt.savefig()를 사용하여 시각화를 파일로 저장하는 방법을 배웠습니다.

이것은 Matplotlib 으로 할 수 있는 일의 시작일 뿐입니다. 이제 이러한 기술을 바탕으로 더 복잡하고 사용자 정의된 시각화를 만들 수 있습니다. 계속 탐색하세요!