소개
Matplotlib 은 Python 에서 정적, 애니메이션 및 대화형 시각화를 만드는 포괄적인 라이브러리입니다. 가장 인기 있는 데이터 시각화 라이브러리 중 하나이며 Python 으로 작업하는 모든 데이터 과학자 또는 분석가에게 필수적입니다.
선 그래프 (line plot) 는 가장 기본적이고 널리 사용되는 그래프 유형 중 하나입니다. '마커 (markers)'라고 불리는 일련의 데이터 포인트를 직선 세그먼트로 연결하여 정보를 표시합니다. 종종 시간 간격에 따른 데이터의 추세 (시계열, time series) 를 시각화하는 데 사용되므로 선은 종종 연대순으로 그려집니다.
이 실습에서는 처음부터 간단한 선 그래프를 만드는 방법을 배우게 됩니다. 데이터 준비, 플로팅, 축에 설명 레이블 추가, 그리고 마지막으로 LabEx 환경에서 직접 볼 수 있는 이미지 파일로 플롯을 저장하는 전체 과정을 다룰 것입니다.
x 및 y 데이터 리스트 준비
이 단계에서는 플롯을 위한 데이터를 준비합니다. 무언가를 시각화하기 전에 데이터가 필요합니다. 간단한 2D 선 그래프의 경우 두 가지 데이터 세트가 필요합니다. 하나는 x 축 (수평 축) 용이고 다른 하나는 y 축 (수직 축) 용입니다.
데이터를 저장하기 위해 Python 리스트를 사용할 것입니다. 몇 년간의 인구 증가를 나타내는 간단한 데이터 세트를 만들어 보겠습니다.
먼저 왼쪽 파일 탐색기에서 ~/project 디렉토리에 있는 main.py 파일을 엽니다. 이 파일에는 필요한 import 문이 이미 포함되어 있습니다.
이제 main.py에 다음 코드를 추가하여 x와 y 두 개의 리스트를 만듭니다.
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 에게 x와 y 리스트를 좌표로 사용하여 선 그래프를 생성하도록 지시합니다. 하지만 지금 스크립트를 실행해도 아무것도 보이지 않을 것입니다. 아직 레이블을 추가하고 그래프를 파일로 명시적으로 저장해야 합니다.
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를 두 번 클릭하여 열면 완성된 선 그래프를 볼 수 있습니다!

요약
축하합니다! Matplotlib 을 사용하여 첫 번째 선 그래프를 성공적으로 생성하고 저장했습니다.
이 실습에서는 기본 그래프를 생성하는 기본적인 워크플로를 배웠습니다.
- 데이터 준비: x 축과 y 축 데이터를 담을 Python 리스트를 생성했습니다.
- 데이터 플로팅:
plt.plot()을 사용하여 데이터로부터 선 그래프를 생성했습니다. - 레이블 추가:
plt.xlabel()및plt.ylabel()을 사용하여 레이블을 추가하여 그래프를 유익하게 만들었습니다. - 플롯 저장: GUI 가 없는 환경에서 필수적인
plt.savefig()를 사용하여 시각화를 파일로 저장하는 방법을 배웠습니다.
이것은 Matplotlib 으로 할 수 있는 일의 시작일 뿐입니다. 이제 이러한 기술을 바탕으로 더 복잡하고 사용자 정의된 시각화를 만들 수 있습니다. 계속 탐색하세요!



