[AITech] 20220203 - Matplotlib Scatter Plot
학습 내용 정리
기본 Scatter Plot
Scatter Plot은 점을 사용하여 두 feature 간의 관계를 알기 위해 사용하는 그래프입니다.
Scatter plot을 그리기 위해서 .scatter()
메서드를 사용할 수 있습니다.
fig = plt.figure(figsize=(7, 7))
ax = fig.add_subplot(111, aspect=1)
np.random.seed(970725)
x = np.random.rand(20)
y = np.random.rand(20)
ax.scatter(x, y)
ax.set_xlim(0, 1.05)
ax.set_ylim(0, 1.05)
plt.show()
Scatter Plot의 요소
Scatter plot에서 변주를 줄 수 있는 요소에는 다음의 것들이 있습니다.
- 색:
color(c)
- 모양:
marker
- 크기:
size(s)
- 테두리:
linewidth
,edgecolor
각각은 일괄적으로 적용할 수도 있고, 리스트 형태로 각 점에 대해 개별적으로 적용할 수도 있습니다.
fig = plt.figure(figsize=(7, 7))
ax = fig.add_subplot(111, aspect=1)
np.random.seed(970725)
x = np.random.rand(20)
y = np.random.rand(20)
s = np.arange(20) * 20 # 개별적으로 size 지정
ax.scatter(x, y,
s= s,
color='white',
marker='o',
linewidth=1,
edgecolor='black')
plt.show()
Scatter plot의 목적
Scatter plot을 통해 다음의 것들을 확인할 수 있습니다.
-
상관 관계(양의 상관관계, 음의 상관관계, 없음)
-
군집 관계
더 정확한 Scatter Plot
Overplotting
너무 많은 개수의 점을 그리게 되면 점의 분포를 파악하기 어렵습니다. 이럴 때는 다음의 방법들을 사용할 수 있습니다.
- 투명도 조정(
alpha
) - 지터링(Jittering): 점의 위치를 약간씩 변경
- 2차원 히스토그램: 히트맵을 사용하여 깔끔한 시각화
- Coutour Plot: 분포를 등고선을 사용하여 표현
점의 요소와 인지
- 색: 연속은 gradient, 이산은 개별 색상으로
- 마커: 거의 구별하기 힘들다 + 크기가 고르지 않다
- 크기: 두 feature 간의 관계보다는 각 점간의 비율에 초점을 둔다면 좋음(SWOT 분석등에 활용 가능)
인과관계와 상관관계
- 인과관계와 상관관계는 다르다는 것을 분명히 인지해야 함
- 인과 관계는 항상 사전 정보와 함께 가정으로 제시
- 상관 관계는 추후 heatmap에서 다룸
추세선
추세선을 사용하여 scatter의 패턴을 유추할 수 있습니다. 단, 추세선이 2개 이상이 되면 가독성이 떨어지므로 주의해야 합니다.
Leave a comment