Development./Data Visualization

[Data Visualization] Python 데이터 시각화 - matplotlib

Chuuu_DevCamp:) 2022. 1. 19. 23:10
반응형

1. 데이터 시각화가 필요한 이유?

데이터 분석 시 raw와 column 수가 많은 수백 차원의 데이터의 경우, 데이터를 파악하고 이해하기가 쉽지 않습니다.

따라서, 인간이 인지하고 이해하기 쉬운 수준의 차원으로 줄여 데이터를 파악하는 것이 필요합니다.

 

또한, 데이터를 시각적으로 보는 것이 더 기억에 오래 남고 이해하기 쉽기 때문에 방대한 양의 데이터를 시각화 하는 것이 필요합니다.

 

2. Python의 데이터 시각화 방법

파이썬을 이용해 데이터를 시각화 하는 라이브러리의 종류와, 라이브러리 별 사용 예제를 확인 해보겠습니다.

matplotlib

파이썬에서 데이터 시각화에 가장 많이 사용되는 라이브러리로 알려져 있고, 데이터 시각화의 가장 기초와 기본이 되는 라이브러리입니다.

※API reference: https://matplotlib.org/stable/api/index.html

 

설치 및 버전 출력

pip install matplotlib
import matplotlib
import matplotlib.pyplot as plt
#jupyter notebook에서 이미지를 표시하게 하는 매직 함수(jupyter만 해당)
%matplotlib inline

matplotlib.__version__

 

실행 결과

 

막대그래프

import numpy as np

data = {'Jeju': 31, 'Modlives': 29, 'France': 18, 'Switzerland': 22}
order = np.arange(data.__len__())
# bar graph의 데이터를 data의 value값으로 표시하도록 설정
plt.bar(order, data.values())
# bar graph의 x축을 data의 key값으로 표시하도록 설정
plt.xticks(order, data.keys())
plt.show()

막대그래프

히스토그램

# 0.5 ~ 20.0 사이의 임의의 숫자 50개 생성
rand_floats = np.random.uniform(low=0.5, high=20.0, size=(50))
print(rand_floats)

# rand_floats 데이터를 히스토그램으로 표현
# x축에 생성된 숫자를, y축엔 해당 숫자의 개수를 표현
plt.hist(rand_floats)
plt.show()

히스토그램

점 그래프

# 1.0 ~ 100.0 사이의 임의의 숫자 4개 생성
rand_floats = np.random.uniform(low=1.0, high=100.0, size=(4))
print(rand_floats)

# rand_floats 값들을 산점도(scatter plot)로 표현하도록 설정
plt.scatter(order, rand_floats)

# 산점도의 x축을 data의 key값으로 설정
plt.xticks(order, data.keys())
plt.show()

 

점 그래프

선 그래프

# 1.0 ~ 100.0 사이의 임의의 숫자 10개 생성
rand_floats = np.random.uniform(low=1.0, high=100.0, size=(10))
print(rand_floats)

order = np.arange(10)
key_list = ['2013', '2014', '2015', '2016', '2017', '2018', '2019', '2020', '2021', '2022']

# rand_floats 값들을 라인 플롯으로 그리도록 설정
plt.plot(order, rand_floats)

# 라인 플롯의 x축을 key_list 데이터로 설정
plt.xticks(order, key_list)
plt.show()

선 그래프

파이 차트

# pie 차트
data = {'Jeju': 31, 'Modlives': 29, 'France': 18, 'Switzerland': 22}

# data의 key와 value를 pie 차트로 그리도록 설정
plt.pie(data.values(), labels=data.keys(), autopct='%.1f%%')
plt.show()

파이 차트