[파이썬] 파이썬 Matplotlib를 이용한 그래프 만들기

미음제

·

2021. 3. 11. 19:16

Matplotlib 라이브러리

Matplotlib 라이브러리는 

많은 파이썬 라이브러리들 중 하나로

매트랩과 유사하며

그래프를 표시하는 것을 

가능하게 해주는

라이브러리이다.

 

 

Matploblib.pyplot 모듈을 통해

그래프를 그리고 수정할 수 있다.

 

Matploblib.pyplot 모듈을 사용하기 위해

Matplotlib를 설치해 주어야 한다.

 

Matplotlib 설치

pip install matplotlib

 

설치된 matplotlib를 사용하기 위해

import 해준다.

import matplotlib.pyplot as plt

import 한 module을

as 사용하고 싶은 이름으로

설정할 수 있다.

 

Font 설정

Matplotlib로 그래프를 그리면

한글 폰트가 깨지게 된다.

 

이를 해결하기 위해서

font_manager함수를 사용한다.

from matplotlib import font_manager, rc

 

자신의 컴퓨터에

설치된 한글 폰트는

C:/Windows/Fonts/

에서 확인할 수 있다.

 

한글 폰트 경로를 설정해주고

font_manger() 함수를 통해

한글 폰트를 가져온다.

font_path = 'C:/Windows/Fonts/malgun.ttf' #malgun 폰트를 사용
font_name = font_manager.FontProperties(fname=font_path).get_name()

 

가져온 폰트를 font_name으로 저장하고,

rc를 통해 폰트를 설정해준다.

rc('font', family=font_name)

 

그래프를 그리기 위한

모듈 설치와,

한글 폰트가 깨지는 현상을

방지하기 위한

설정이 모두 끝났다.

 

데이터 입력

그래프의 x축에 입력할 데이터를

리스트로 입력해 준다.

x_data = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]

그래프의 y축에 입력할 데이터를

리스트로 입력해 준다.

a = [242, 256, 237, 223, 263, 81, 46]

 

그래프 만들기

그래프의 title과

x, y축의 title을

설정해 준다.

plt.title('일주일간 유동 인구수 데이터', fontsize=16)  # 큰 제목
plt.xlabel('요일', fontsize=12)  # x축 제목
plt.ylabel('유동 인구수', fontsize=12)  # y 축 제목

입력한 데이터를

그래프에 입력하기 위해

scatter함수와 plot함수를 사용한다.

 

scatter함수는 산점도를 나타내고

plot은 꺾은선 그래프를 나타낸다.

plt.scatter(x_data, a)  # 산점도 표시
plt.plot(x_data, a)  # 꺾은선 그래프
plt.show()

scatter와 plot함수는

기본적인 구조는

scatter(x축, y축)

plot(x축, y축)

 

plt.show()를 통해

그래프를 표시하면

다음과 같은 결과물이 나온다.

 

title로 설정한

'일주일간 유동 인구수 데이터'가

Figure의 최상단에 배치되고

xlabel과 ylabel로 설정한

요일과 유동인구수가

각각 x축 y축의 제목으로 설정되었다.

 

x_data로 입력한 리스트가

x축으로 입력되었고,

a로 입력한 리스트가

y축으로 입력되었다.

 

그래프 수정하기

그래프와 산점도를

여러 개를 나타낼 수 있는데,

 

수많은 그래프와 산점도가

표시되면

어떤 데이터가 무엇을 나타내는지

헷갈릴 수 있다.

 

범례를 입력해주면

어떤 데이터를 나타내는지

알 수 있다.

 

scatter() 함수에 labe="유동인구"추가하고

legend() 함수를 통해 Figure의 범례를 만들고

show() 함수로 범례 추가한 것을 표시한다.

plt.scatter(x_data, a, label="유동인구")  # 산점도 표시
plt.plot(x_data, a)  # 꺾은선 그래프
plt.legend()
plt.show()

scatter와 plot은

색상도 변경할 수 있다.

plt.scatter(x_data, a, c="red", label="유동인구")  # 산점도 표시
plt.plot(x_data, a, c="red")  # 꺾은선 그래프
plt.legend()
plt.show()

 

반응형