안녕하세요~ 꽁냥이에요. 데이터 분석 시 두 개의 연속형 변수가 있을 때 이들의 분포를 보기 위하여 산점도를 그립니다. 산점도는 각 변수의 분포뿐 아니라 두 변수간 상관관계도 시각적으로 파악할 수 있다는 장점이 있습니다.
이번 포스팅에서는 Matplotlib을 이용하여 산점도 그리는 방법을 알아보겠습니다.
여기서 다루는 내용은 다음과 같습니다.
1. 기본적인 산점도 그리기
Matplotlib에서는 scatter 함수를 이용하여 산점도를 그릴 수 있습니다.
scatter 함수의 기본적인 사용법은 x축에 들어갈 데이터를 첫 번째 인자, y축에 들어갈 데이터를 두 번째 인자로 넣어주는 것입니다.
scatter(x, y)
이제 코드를 통하여 산점도를 그려봅시다~~ 먼저 필요한 모듈을 임포트합니다.
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
from scipy.stats import norm
그리고 산점도를 그릴 데이터를 만들어줍니다.
np.random.seed(133)
num_data = 50
x = np.random.rand(num_data)
y = np.random.rand(num_data)
이제 산점도를 그릴 준비가 되었습니다.
fig = plt.figure(figsize=(8,8))
fig.set_facecolor('white')
plt.scatter(x, y)
plt.show()
코드를 실행해보면 위와 같이 기본적인 산점도가 그려진 것을 확인할 수 있습니다.
2. 산점도 꾸미기
보기 좋은 떡이 맛도 좋다고 산점도 또한 꾸며줘야 더 정보력이 좋아 보일 수(?) 있습니다. 산점도에서는 주로 산점도에 표시되는 마커를 꾸미게 됩니다.
마커의 색상은 color, 마커 스타일은 marker, 마커 크기는 s, 그리고 마커 테두리 색상은 edgecolor로 설정할 수 있습니다. Matplotlib에서는 마커 스타일을 미리 정의해놓았습니다. 여기에 가셔서 확인해보세요. 아래 코드를 실행해보세요.
fig = plt.figure(figsize=(8,8))
fig.set_facecolor('white')
plt.scatter(x, y,
color='red', ## 마커 색상
marker = 'D', ## 마커 스타일
s = 25, ## 마커 사이즈
edgecolor = 'k' ## 마커 테두리 색상
)
plt.show()
산점도가 예쁘게 그려진 것을 알 수 있습니다.
3. 산점도 여러 겹쳐 그리기
scatter 함수를 여러 번 호출하면 산점도를 겹쳐 그릴 수 있어요. 아래 코드를 살펴볼게요.
np.random.seed(133)
num_data = 50
num_y = 3
x = np.random.rand(num_data)
ys = [norm.rvs(5*i,1,num_data) for i in range(num_y)]
colors = sns.color_palette('hls',num_y)
fig = plt.figure(figsize=(8,8))
fig.set_facecolor('white')
for i, y in enumerate(ys):
plt.scatter(x, y, color=colors[i], label=f'Group({i})')
plt.legend()
plt.show()
line 3~6
산점도 여러 개를 그리기 위한 데이터를 만들어줍니다.
line 7
각 산점도 별로 색상을 다르게 하기 위하여 컬러 리스트를 만들어줍니다.
line 13
루프마다 scatter를 호출해줍니다.
위 코드를 실행해보세요.
산점도가 겹쳐 그려진 것을 확인할 수 있습니다.
이번 포스팅에서는 산점도를 그리고 꾸며보는 방법에 대해서 알아보았습니다. 다음 포스팅에서는 산점도를 좀더 멋지게 꾸며보는 방법에 대해서 알아보려고 합니다. 기대해주세요.
지금까지 꽁냥이의 글 읽어주셔서 감사합니다. 안녕히계세요~
'데이터 분석 > 시각화' 카테고리의 다른 글
[Matplotlib Tip] 1. subplot 겹치지 않게 하기 (1123) | 2021.05.26 |
---|---|
[산점도(Scatter Plot)] 2. Matplotlib을 이용하여 산점도 멋지게 만들어보기 (1130) | 2021.05.22 |
Matplotlib 그래프의 눈금(Tick) 조절하기 (1098) | 2021.05.05 |
[히트 맵(Heat Map)] 2. 히트 맵 꾸미기 (1128) | 2021.04.25 |
[히트 맵(Heat Map)] 1. 히트 맵 그리기 - 기본 (1674) | 2021.04.21 |
댓글