12wk-2

지리정보시각화
plotly
Author

최규빈

Published

November 23, 2022

px.scatter_geo, animation

강의영상

https://youtube.com/playlist?list=PLQqh36zP38-zGS9nTgAujTBUgZCr23-u7

강의노트 저장하는 방법

https://youtube.com/playlist?list=PLQqh36zP38-xNZZK-6-kzMGSHvxGdzlz0

import

import pandas as pd
import plotly.express as px

px.scatter_geo

세계지도 그리기

- 기본그리기1

px.scatter_geo()

- 기본그리기2

px.scatter_geo(projection='natural earth')

세계지도 + 버블

- 좌표에 점을 찍어보기1

df=pd.DataFrame({'lat':[0,38],'lon':[0,127],'size':[5,20]})
df
lat lon size
0 0 0 5
1 38 127 20
px.scatter_geo(df,lat='lat',lon='lon',size='size')

- 좌표에 점을 찍어보기2

df=pd.DataFrame({'iso_alpha':['KOR','JPN'],'size':[10,2]})
df
iso_alpha size
0 KOR 10
1 JPN 2
px.scatter_geo(df,locations='iso_alpha',size='size')

Gapminder data 시각화

- Gapminder

  • 스웨덴 스톡홀름에 등록된 비영리 벤처 기업
  • Trendalyzer 소프트웨어를 개발하여 애니메이션 거품 그래프를 생성 \(\to\) 소프트웨어는 2006년, Gapminder의 개발자는 2007년에 글고..

https://www.youtube.com/watch?v=N91kkT-vC6w

- Gapminder data: 국가별 기대수명, 1인당 GDP, 인구에 대한 데이터 - 특징: 연도별로 정리가 되어있다.

df = px.data.gapminder()
df
country continent year lifeExp pop gdpPercap iso_alpha iso_num
0 Afghanistan Asia 1952 28.801 8425333 779.445314 AFG 4
1 Afghanistan Asia 1957 30.332 9240934 820.853030 AFG 4
2 Afghanistan Asia 1962 31.997 10267083 853.100710 AFG 4
3 Afghanistan Asia 1967 34.020 11537966 836.197138 AFG 4
4 Afghanistan Asia 1972 36.088 13079460 739.981106 AFG 4
... ... ... ... ... ... ... ... ...
1699 Zimbabwe Africa 1987 62.351 9216418 706.157306 ZWE 716
1700 Zimbabwe Africa 1992 60.377 10704340 693.420786 ZWE 716
1701 Zimbabwe Africa 1997 46.809 11404948 792.449960 ZWE 716
1702 Zimbabwe Africa 2002 39.989 11926563 672.038623 ZWE 716
1703 Zimbabwe Africa 2007 43.487 12311143 469.709298 ZWE 716

1704 rows × 8 columns

- 2007년만 추출

df.query('year==2007')
country continent year lifeExp pop gdpPercap iso_alpha iso_num
11 Afghanistan Asia 2007 43.828 31889923 974.580338 AFG 4
23 Albania Europe 2007 76.423 3600523 5937.029526 ALB 8
35 Algeria Africa 2007 72.301 33333216 6223.367465 DZA 12
47 Angola Africa 2007 42.731 12420476 4797.231267 AGO 24
59 Argentina Americas 2007 75.320 40301927 12779.379640 ARG 32
... ... ... ... ... ... ... ... ...
1655 Vietnam Asia 2007 74.249 85262356 2441.576404 VNM 704
1667 West Bank and Gaza Asia 2007 73.422 4018332 3025.349798 PSE 275
1679 Yemen, Rep. Asia 2007 62.698 22211743 2280.769906 YEM 887
1691 Zambia Africa 2007 42.384 11746035 1271.211593 ZMB 894
1703 Zimbabwe Africa 2007 43.487 12311143 469.709298 ZWE 716

142 rows × 8 columns

- 시각화예시1: (x,y) = (lon,lat) = locations

px.scatter_geo(
    data_frame = df.query('year==2007'),
    locations= 'iso_alpha'
)

- 시각화예시2: (x,y) = (lon,lat) = locations, size= pop

px.scatter_geo(
    data_frame = df.query('year==2007'),
    locations= 'iso_alpha',
    size='pop'
)

- 시각화예시3: (x,y) = (lon,lat) = locations, size= pop, color= continent

px.scatter_geo(
    data_frame = df.query('year==2007'),
    locations= 'iso_alpha',
    size='pop',
    color='continent'
)

px.scatter_geo + animation

- 시각화예시1

px.scatter_geo(
    data_frame = df,
    locations= 'iso_alpha',
    size='pop',
    color='continent',
    animation_frame='year'
)
px.scatter_geo(
    data_frame = df,
    projection = 'natural earth',
    locations= 'iso_alpha',
    size='pop',
    color='continent',
    animation_frame='year'
)

숙제

없음