안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.
<데이터 시각화 관련 글>
2021.07.09 - [파이썬 패키지/데이터분석] - [Python/matplotlib] 데이터 시각화 라이브러리_4편.눈금(Tick), 그리드(Grid) 표시하는 법
먼저 기본 설정을 하고 시작하겠습니다.
import matplotlib.pyplot as plt
import numpy as np
plt.rc('font', family='NanumBarunGothic')
plt.rcParams["figure.figsize"] = (8, 6)
막대 그래프
: plt.bar(x, y)
막대 그래프를 그리는 방법은 지금까지 배운 꺾은선 그래프와 같지만 딱 하나 다릅니다. plt.plot를 plt.bar로만 바꿔주시면 됩니다.
단, plt.bar( ) 함수는 반드시 x, y축 데이터를 모두 넣어 주어야합니다. plt.plot( ) 함수 처럼 자동으로 x축 index를 만들어 주지 않고 에러를 출력하거든요.
당연한 이야기지만 x축 데이터와 y축 데이터의 갯수가 같아야합니다.
# data 생성
data_y = np.arange(1, 11)
data_x = np.arange(1, 11)
# 꺾은선 그래프 그리기
plt.subplot(2, 1, 1)
plt.plot(data_y)
# 막대 그래프 그래프
plt.subplot(2, 1, 2)
plt.bar(data_x, data_y)
# 그래프 출력
plt.show()
막대별로 다른 색상을 넣거나, 막대의 폭, 테두리 등의 스타일 설정도 가능합니다. 여기서는 다양한 그래프를 다룰 예정이므로 자세한 내용은 글 마지막의 참고 자료를 참고해주세요.
참고로 label, legend, title 등은 지난 시간에 배운 내용이 똑같이 적용 가능하답니다.
수평 막대 그래프
: plt.barh(y, x)
수평 막대 그래프는 위에서 배운 막대 그래프를 90도 회전시켜서 눞혀 놓았다고 생각하시면 됩니다.
인자로 y축 데이터를 먼저 받는다는 점만 주의하시면 되겠습니다. 그 외의 기타 설정들은 위에서 설명드린 내용과 동일합니다.
# data 생성
data_y = np.arange(11, 21)
data_x = np.arange(1, 11)
# 수평 막대 그래프 그래프
plt.barh(data_y, data_x)
# 그래프 출력
plt.show()
파이 차트
: plt.pie( )
파이 차트는 여러가지 항목의 비율(%)를 효과적으로 나타낼 수 있는 그래프입니다. 참고로 autopct라는 파라미터를 설정해주지 않으면 데이터가 그래프에 표시되지 않는답니다.
# ratio (모두 합쳐서 100이 되지 않으면 자동으로 전체의 합에서 각각의 비율을 나타냄)
data = [15, 30, 20, 35]
plt.pie(data, autopct='%.1f%%')
plt.show()
여기까지만 알려드리면 파이차트는 정말 쓸모가 없을 듯 하여, 옵션들을 설정해서 쓸만하게 만들어보겠습니다.
많은 옵션들이 있지만 labels, explodes, colors, shadow 정도면 충분할 듯 하여, 이것들만 다루었습니다.
ratio = [15, 30, 20, 35]
# 각 영역의 범례
labels = ['A', 'B', 'C', 'D']
# 각 영역이 중심으로부터 떨어진 거리
explode = [0.05, 0.05, 0.05, 0.05]
# 각 영역의 색상
colors = ['lightpink', 'lightyellow', 'lightgreen', 'lightskyblue']
plt.pie(ratio, autopct='%.1f%%', labels=labels, explode=explode, colors=colors, shadow=True)
plt.show()
산점도 그래프
: plt.scatter( )
산점도 그래프는 데이터들이 얼마나 분포해 있는지, 그 값의 크기는 어느정도인지를 한 눈에 볼 수 있도록 표현한 그래프입니다.
# 0~1 사이의 실수를 무작위으로 50개 생성 (x, y 좌표로 활용)
x = np.random.rand(50)
y = np.random.rand(50)
# 각 점들의 색상 부여를 위한 Array 생성 (데이터와 동일한 50개 필요)
colors = np.arange(50)
# 각 점들의 면적을 부여해서 다양한 점의 면적 표현
area = x * y * 2000
# 0~1 사이의 투명도를 설정하여 점이 겹쳤을 때를 더 예쁘게 표현 가능
alpha= 0.5
# 산점도 그래프 그리기 (여기서 cmap은 matplotlib에 정의된 컬러 조합임)
plt.scatter(x, y, s=area, c=colors, alpha=alpha, cmap='hsv')
# 산점도 그래프 우측에 컬러가 무엇을 뜻하는지 컬러바 표현
plt.colorbar()
# 그래프 출력
plt.show()
c(color)나 s(area), alpha, colorbar( )와 같은 설정을 해주지 않으면 아래와 같이 허접한(?) 산점도 그래프를 얻을 수 있습니다.
위에서 같이 예쁜 컬러를 얻기 위해서는 cmap 설정을 할 수 있으며, 그 양이 방대해서 참고 자료로 대체하도록 하겠습니다. 원하는 컬러맵을 골라서 사용하시면 되겠습니다.
https://codetorial.net/matplotlib/set_colormap.html
<참고 자료>
1. 직장인을 위한 파이썬 데이터분석 올인원 패키지 Online_패스트 캠퍼스 유료강의
2. Codetorial_Matplotlib 산점도 그리기
'파이썬 패키지 > 데이터시각화' 카테고리의 다른 글
[Python/bar-chart-race] 움직이는 막대 차트 시각화 사용법 정리 (0) | 2021.07.27 |
---|---|
[Python/bar-chart-race] 움직이는 막대 차트 시각화(ft. 12-20년 프리미어리그 클럽별 점수) (7) | 2021.07.26 |
[Python/matplotlib] 데이터 시각화 라이브러리_5편.다중 그래프 그리는 방법(ft. figure, subplot) (0) | 2021.07.11 |
[Python/matplotlib] 데이터 시각화 라이브러리_4편.눈금(Tick), 그리드(Grid) 표시하는 법 (0) | 2021.07.09 |
[Python/matplotlib] 데이터 시각화 라이브러리_3편.matplotlib 그래프 그리기(선 색상, 종류, 마커 설정) (0) | 2021.07.06 |