신이 되고 싶은 갓지이

3. Python 기초 - Seaborn, Folium으로 시각화 하기 본문

Python

3. Python 기초 - Seaborn, Folium으로 시각화 하기

갓지이 2024. 1. 5. 13:11

* 데이터가 없다면 Seaborn 내장 데이터를 불러와서 활용 가능하다. raw = sns.load_dataset('tips')

 

1) Seabron으로 데이터 시각화하기

1. Seaborn 함수 기본형태

- sns.그래프종류(data = 데이터프레임, x='x축 커럼명' , y='y축 컬럼명', hue='그래프 안에서 색상 구별할 컬럼명')

 

 

2. 데이터 분포 확인 (수치형,수치형)

- 두개의 변수(모두 수치형)의 분포를 확인 할 때

- sns.relplot(data = df, x =' ' , y = ' ', hue = ' ', kind = '옵션')

 

<kind 옵션>

  • scatter (기본값)
  • line 

 

3. 데이터 관계 확인 (수치형, 수치형)

- sns.jointplot(data = df, x =' ' , y = ' ', hue = ' ', kind = '옵션')

 

<kind 옵션>

  • scatter (기본값)
  • reg : 회귀선
  • kde : 밀도함수
  • hex : kde 속성과 유사하게 밀도를 표현하나 kde 처럼 간격이 다르지 않고, 간격이 모두 동일한 육각형 모양으로 시각화

 

4. 모든 데이터의 관계 확인 

- df의 모든 수치형데이터 컬럼에서 두 컬럼씩 관계를 시각화 

- sns.pairplot(data = df, hue=' ')

 

 

5. 데이터 분포 확인 (수치형, 카테고리형)

- sns.boxplot(data = df, x = ' ', y = ' ', hue=' ') : 상자그림

- sns.swarmplot(data = df, x = ' ', y = ' ', hue = ' ', dodge=False) : 데이터 개수와 함께 분포를 살펴볼 수 있음

 

* 하나의 셀에 두 코드를 동시에 입력하여 실행하면 한번에 두 종류의 그래프를 그려준다. 

 

 

제일 아래 선부터 순서대로 최소값 - 1분위수(하위 25%) - 중위수 (하위 50%) - 3분위수 (상위 25%) - 최대값을 의미한다. 선 밖에 존재하는 데이터는 '이상치'로 때에 따라 제외하거나 자체로의 의미가 있는 값이다.

 

 

- sns.barplot(data = df, x = ' ', y = ' ', hue = ' ') : 특정 값에 대한 개수를 살펴볼 수 있음

 

 

6. 데이터 분포 살펴보기(수치형, 카테고리형, 카테고리형)

- sns.heatmap(data = df, annot = True, fmt = '.2f', cmap = 'Blues') : 두 카테고리형 데이터 분포에 대한 수치형데이터의 값을  한눈에 색상을 이용하여 한눈에 살펴볼 수 있음

* annot = True 로 할 경우 수치를 표현하며, 표현되는 숫자 형태fmt 옵션으로 지정 ('.2f' 의 경우 소수점 두 자리까지 표현하라는 의미) 또한 cmap 옵션을 이용해 색상을 조정

 

 

 

2) Folium으로 지도 시각화하기

1. 지도 시각화 

- 지도생성하기 : m = folium.Map(location = [위도, 경도], zoom_start = 확대정도)

- 정보 추가하기

  • 마커 추가하기 : folium.Marker([위도, 경도], tooltip="마우스올리면 보일 문구", popup="클릭하면 보여질 문구").add_to(m)
  • 원 추가하기 : folium.CircleMarker([위도, 경도], radius= 원크기, tooltip="마우스올리면 보일 문구", popup="클릭하면 보여질 문구").add_to('m')
  • 기타 : ClickForMarker('체크').add_to(m) 지도에서 클릭할 경우 마커 추가하기

 

2. 미니맵 추가

from folium.plugins import MiniMap

# 미니맵 추가하기
minimap = MiniMap() 
minimap.add_to(m)

 

 

3. 마커 클러스터 생성

너무 많은 마커가 있을 때 주변에 있는 마커들끼리 그룹화 하는 작업

from folium.plugins import MarkerCluster

marker_cluster = MarkerCluster().add_to(m)  # 클러스터 추가하기

 

 

 

4. 마커 변경

지도에 표시되는 마커를 변경 하기 위한 작업

icon = folium.Icon(color='red', icon='info-sign')