Seaborn은 파이썬의 시각화 라이브러리로, Matplotlib을 기반으로 더 높은 수준의 인터페이스를 제공한다.
통계적 그래프를 쉽게 그릴 수 있도록 도와준다.
CSV 파일을 읽어 데이터프레임으로 변환하는 데 사용된다.
데이터프레임의 형식, 행과 열의 개수, 데이터 타입 등의 요약 정보를 텍스트로 보여준다.
Country name: 국가 이름
Regional indicator: 지역 지표
Ladder score: 사다리 점수
Standard error of ladder score: 사다리 점수의 표준 오차
upperwhisker: 상위 수염값
lowerwhisker: 하위 수염값
Logged GDP per capita: 1인당 로그 GDP
Social support: 사회적 지원
Healthy life expectancy: 건강한 기대 수명
Freedom to make life choices: 삶의 선택에 대한 자유
Generosity: 관대함
Perceptions of corruption: 부패 인식
Ladder score in Dystopia: 디스토피아에서의 사다리 점수
Explained by: Log GDP per capita: 설명: 1인당 로그 GDP
Explained by: Social support: 설명: 사회적 지원
Explained by: Healthy life expectancy: 설명: 건강한 기대 수명
Explained by: Freedom to make life choices: 설명: 삶의 선택에 대한 자유
Explained by: Generosity: 설명: 관대함
Explained by: Perceptions of corruption: 설명: 부패 인식
Dystopia + residual: 디스토피아 + 잔차
happyfilter는 'Ladder score' 열의 값이 7.5 이상이거나 3.5 이하인 행을 필터링한다.
이 조건을 만족하는 데이터를 선택하여 막대 그래프를 그리게 된다.
이 그래프는 'Ladder score'가 높은 나라와 낮은 나라를 시각화한 것이다.
x축은 'Ladder score'를 나타내며, y축은 나라 이름을 나타낸다.
막대의 길이는 각 나라의 'Ladder score'를 나타낸다.
색상 팔레트는 'coolwarm'을 사용하여 높은 점수는 차가운 색으로, 낮은 점수는 따뜻한 색으로 표현된다.
sns.barplot() 함수는 막대 그래프를 그리는 Seaborn 함수이다.
data=happiness[happyfilter]: 필터링된 데이터를 사용하여 그래프를 그린다.
x='Ladder score': x축에 'Ladder score' 값을 사용한다.
y='Country name': y축에 'Country name' 값을 사용한다.
palette='coolwarm': 색상 팔레트를 'coolwarm'으로 설정하여 막대의 색상을 지정한다.
plt.show(): 그래프를 화면에 표시한다.
이 코드는 이 코드는 happy_df 데이터프레임에서 특정 열을 선택하여 happiness라는 새로운 데이터프레임을 만들고 happiness 데이터프레임을 'Ladder score' 열을 기준으로 내림차순 정렬하여 다시 할당하는 작업을 수행한다. 이를 통해 국가별 행복 점수를 기준으로 데이터를 정렬한다.
이 코드는 happiness 데이터프레임을 'Logged GDP per capita' 열을 기준으로 내림차순 정렬하여 다시 할당하는 작업을 수행한다. 이를 통해 국가별 1인당 로그 GDP를 기준으로 데이터를 정렬한다.
gdpfilter는 'Logged GDP per capita' 열의 값이 11.1 이상이거나 7.2 이하인 행을 필터링한다.
gdp.loc[:, 'Logged GDP per capita'] >= 11.1: 1인당 로그 GDP가 11.1 이상인 경우를 필터링한다.
gdp.loc[:, 'Logged GDP per capita'] <= 7.2: 1인당 로그 GDP가 7.2 이하인 경우를 필터링한다.
| 연산자를 사용하여 두 조건 중 하나라도 만족하는 행을 선택한다.
sns.barplot() 함수는 막대 그래프를 그리는 Seaborn 함수다.
data=gdp[gdpfilter]: 필터링된 데이터를 사용하여 그래프를 그린다.
x='Logged GDP per capita': x축에 'Logged GDP per capita' 값을 사용한다.
y='Country name': y축에 'Country name' 값을 사용한다.
palette='PiYG': 색상 팔레트를 'PiYG'로 설정하여 막대의 색상을 지정한다.
gdp 데이터프레임을 'Logged GDP per capita' 열을 기준으로 필터링한 후, Seaborn을 사용하여 막대 그래프를 그리는 작업을 수행한다.
이를 통해 특정 조건을 만족하는 국가들의 1인당 로그 GDP를 시각화한다.
이 그래프는 'Logged GDP per capita'가 높은 나라와 낮은 나라를 시각화한 것이다.
x축은 'Logged GDP per capita'를 나타내며, y축은 나라 이름을 나타낸다.
막대의 길이는 각 나라의 'Logged GDP per capita'를 나타낸다.
색상 팔레트는 'PiYG'를 사용하여 높은 GDP는 짙은 색으로, 낮은 GDP는 연한 색으로 표현된다.
이 코드는 happy_df 데이터프레임에서 특정 열을 다시 선택하여 happiness 데이터프레임을 갱신한다.
sns.countplot() 함수는 범주형 데이터의 개수를 시각화하는 막대 그래프를 그리는 Seaborn 함수이다.
data=happiness: happiness 데이터프레임을 사용한다.
x='Regional indicator': x축에 'Regional indicator' 값을 사용한다.
hue='Regional indicator': 색상을 'Regional indicator' 값을 기준으로 다르게 설정한다.
plt.xticks(rotation=80): x축의 레이블을 80도 회전시킨다. 이를 통해 긴 레이블도 겹치지 않고 표시할 수 있다.
plt.grid(axis='y', color='grey', linestyle='--'): y축에 회색 점선으로 격자선을 추가한다. 이를 통해 각 막대의 높이를 더 쉽게 비교할 수 있다.
plt.show(): 그래프를 화면에 표시한다.
이 그래프는 각 지역 지표에 속하는 국가의 개수를 시각화한 것이다.
x축은 'Regional indicator' (지역 지표)를 나타내며, y축은 각 지역 지표에 속하는 국가의 개수를 나타낸다.
막대의 높이는 각 지역 지표에 속하는 국가의 개수를 나타내며, 막대의 색상은 동일한 'Regional indicator' 값을 기준으로 다르게 설정되었다.
x축 레이블이 80도 회전되어 표시되어 긴 레이블도 겹치지 않고 볼 수 있다.
y축에 회색 점선으로 격자선을 추가하여 각 막대의 높이를 더 쉽게 비교할 수 있다.
sns.boxplot() 함수는 데이터의 분포와 이상치를 시각화하는 박스 플롯을 그리는 Seaborn 함수이다.
data=happiness: happiness 데이터프레임을 사용한다.
y='Ladder score': y축에 'Ladder score' 값을 사용한다.
x='Regional indicator': x축에 'Regional indicator' 값을 사용한다.
hue='Regional indicator': 색상을 'Regional indicator' 값을 기준으로 다르게 설정한다.
orient='v': 박스 플롯을 세로로 그린다.
plt.xticks(rotation=80): x축의 레이블을 80도 회전시킨다. 이를 통해 긴 레이블도 겹치지 않고 표시할 수 있다.
plt.show(): 그래프를 화면에 표시한다.
이 그래프는 각 지역 지표에 따른 'Ladder score' (행복 점수)의 분포를 시각화한 것이다.
x축은 'Regional indicator' (지역 지표)를 나타내며, y축은 'Ladder score' (행복 점수)를 나타낸다.
각 박스 플롯은 해당 지역의 행복 점수 분포를 나타낸다.
박스의 중앙선은 중앙값(median)을 나타낸다.
박스의 상단과 하단은 각각 3사분위수(Q3)와 1사분위수(Q1)를 나타낸다.
상단과 하단의 수염(whisker)은 데이터의 최대 및 최소 값을 나타낸다.
박스 밖의 점들은 이상치(outliers)를 나타낸다.
각 박스 플롯의 색상은 해당 지역 지표를 나타내며, 색상 팔레트는 자동으로 설정된다.
Plotly는 대화형 그래프를 그릴 수 있는 라이브러리로, 웹 애플리케이션과 통합하여 사용할 수 있다.
Plotly Express는 Plotly의 간편한 래퍼(wrapper, 복잡한 기능을 더 쉽게 사용할 수 있도록 감싸주는 코드)로, 빠르고 쉽게 그래프를 그릴 수 있도록 도와준다.
px.treemap(): Plotly Express의 트리맵을 생성하는 함수이다.
data_frame=happiness: happiness 데이터프레임을 사용한다.
path=['Regional indicator', 'Country name']: 트리맵의 계층 구조를 설정한다. 첫 번째 계층은 'Regional indicator' (지역 지표)이고, 두 번째 계층은 'Country name' (국가 이름)이다.
values='Ladder score': 각 사각형의 면적을 나타내는 값으로 'Ladder score' (행복 점수)를 사용한다.
color='Ladder score': 각 사각형의 색상을 나타내는 값으로 'Ladder score'를 사용한다.
이 트리맵은 각 지역 지표와 국가의 행복 점수를 시각화한 것이다.
각 사각형은 국가를 나타내며, 사각형의 면적은 해당 국가의 'Ladder score' (행복 점수)를 나타낸다.
색상은 'Ladder score'를 나타내며, 색상 막대는 점수가 낮은 경우(파란색)에서 높은 경우(노란색)로 변한다.
사각형은 'Regional indicator' (지역 지표)를 기준으로 그룹화되어 있으며, 각 그룹은 특정 지역을 나타낸다.
이 트리맵은 국가별 행복 점수를 시각적으로 비교할 수 있도록 한다.
path=[px.Constant('world'), 'Regional indicator', 'Country name']: 트리맵의 계층 구조를 설정한다. 첫 번째 계층은 'world', 두 번째 계층은 'Regional indicator' (지역 지표), 세 번째 계층은 'Country name' (국가 이름)이다.
이 트리맵도 각 지역 지표와 국가의 행복 점수를 시각화한 것인데 'world' 계층이 추가되었다.
사각형은 'world'를 기준으로 첫 번째 계층, 'Regional indicator' (지역 지표)를 기준으로 두 번째 계층, 'Country name' (국가 이름)을 기준으로 세 번째 계층으로 그룹화되어 있다.
px.sunburst(): Plotly Express의 선버스트 차트를 생성하는 함수이다.
data_frame=happiness: happiness 데이터프레임을 사용한다.
path=['Regional indicator', 'Country name']: 선버스트 차트의 계층 구조를 설정한다. 첫 번째 계층은 'Regional indicator' (지역 지표)이고, 두 번째 계층은 'Country name' (국가 이름)이다.
color='Ladder score': 각 영역의 색상을 나타내는 값으로 'Ladder score' (행복 점수)를 사용한다.
values='Ladder score': 각 영역의 면적을 나타내는 값으로 'Ladder score'를 사용한다.
이 선버스트 차트는 세계의 각 지역과 국가의 행복 점수를 시각화한 것이다.
각 영역은 국가를 나타내며, 영역의 면적은 해당 국가의 'Ladder score' (행복 점수)를 나타낸다.
색상은 'Ladder score'를 나타내며, 색상 막대는 점수가 낮은 경우(파란색)에서 높은 경우(노란색)로 변한다.
영역은 'Regional indicator' (지역 지표)를 기준으로 첫 번째 계층, 'Country name' (국가 이름)을 기준으로 두 번째 계층으로 그룹화되어 있다.
이 선버스트 차트는 국가별 행복 점수를 시각적으로 비교할 수 있도록 한다.
color='Healthy life expectancy': 각 영역의 색상을 나타내는 값으로 'Healthy life expectancy' (건강 기대 수명)를 사용한다.
values='Healthy life expectancy': 각 영역의 면적을 나타내는 값으로 'Healthy life expectancy'를 사용한다.
title='세계행복지수': 차트의 제목을 '세계행복지수'로 설정한다.
title_x=0.5: 제목을 차트의 중앙에 위치시킨다.
width=900: 차트의 너비를 900 픽셀로 설정한다.
height=600: 차트의 높이를 600 픽셀로 설정한다.
이 선버스트 차트는 세계의 각 지역과 국가의 건강 기대 수명을 시각화한 것이다.
각 영역은 국가를 나타내며, 영역의 면적은 해당 국가의 'Healthy life expectancy' (건강 기대 수명)를 나타낸다.
색상은 'Healthy life expectancy'를 나타내며, 색상 막대는 수명이 낮은 경우(파란색)에서 높은 경우(노란색)로 변한다.
영역은 'Regional indicator' (지역 지표)를 기준으로 첫 번째 계층, 'Country name' (국가 이름)을 기준으로 두 번째 계층으로 그룹화되어 있다.
이 선버스트 차트는 국가별 건강 기대 수명을 시각적으로 비교할 수 있도록 한다.
px.choropleth(): Plotly Express의 지도형 색상표를 생성하는 함수이다.
data_frame=happiness: happiness 데이터프레임을 사용한다.
locations='Country name': 지도에서 각 나라를 'Country name' 열을 기준으로 매칭한다.
locationmode='country names': locations 인자의 값이 국가 이름임을 지정한다.
color='Ladder score': 각 나라의 색상을 'Ladder score' (행복 점수)를 기준으로 설정한다.
title='세계행복지수': 차트의 제목을 '세계행복지수'로 설정한다.
title_x=0.5: 제목을 차트의 중앙에 위치시킨다.
width=900: 차트의 너비를 900 픽셀로 설정한다.
height=600: 차트의 높이를 600 픽셀로 설정한다.
이 선버스트 차트는 세계의 각 지역과 국가의 행복 점수를 시각화한 것이다.
각 영역은 국가를 나타내며, 영역의 면적은 해당 국가의 'Ladder score' (행복 점수)를 나타낸다.
색상은 'Ladder score'를 나타내며, 색상 막대는 점수가 낮은 경우(파란색)에서 높은 경우(노란색)로 변한다.
영역은 'Regional indicator' (지역 지표)를 기준으로 첫 번째 계층, 'Country name' (국가 이름)을 기준으로 두 번째 계층으로 그룹화되어 있다.
이 선버스트 차트는 국가별 행복 점수를 시각적으로 비교할 수 있도록 한다.
CSV 파일을 읽어 데이터프레임으로 변환하는 데 사용된다.
데이터프레임의 형식, 행과 열의 개수, 데이터 타입 등의 요약 정보를 텍스트로 보여준다.
Country name: 국가 이름
year: 연도
Life Ladder: 삶의 만족도 점수
Log GDP per capita: 1인당 로그 GDP
Social support: 사회적 지원
Healthy life expectancy at birth: 출생 시 기대 건강 수명
Freedom to make life choices: 삶의 선택에 대한 자유
Generosity: 관대함
Perceptions of corruption: 부패 인식
Positive affect: 긍정적 정서
Negative affect: 부정적 정서
px.choropleth(): Plotly Express의 지도형 색상표를 생성하는 함수이다.
happy_year_df: happy_year_df 데이터프레임을 사용한다.
locations='Country name': 지도에서 각 나라를 'Country name' 열을 기준으로 매칭한다.
locationmode='country names': locations 인자의 값이 국가 이름임을 지정한다.
color='Life Ladder': 각 나라의 색상을 'Life Ladder' (삶의 만족도 점수)를 기준으로 설정한다.
animation_frame='year': 애니메이션의 프레임을 'year' (연도)로 설정하여 시간에 따른 변화를 보여준다.
이 지도형 색상표는 세계의 각 국가의 삶의 만족도 점수를 시각화한 것이다.
각 나라는 'Life Ladder' (삶의 만족도 점수)를 기준으로 색상이 칠해진다.
색상은 점수가 낮은 경우(보라색)에서 높은 경우(노란색)로 변한다.
지도는 애니메이션을 통해 시간에 따른 삶의 만족도 점수의 변화를 보여준다.
하단의 슬라이더를 사용하여 연도를 선택하거나, 재생 버튼을 눌러 애니메이션을 재생할 수 있다.
px.imshow(): Plotly Express의 히트맵을 생성하는 함수이다.
happiness.corr(numeric_only=True): happiness 데이터프레임의 숫자형 열 간의 상관관계를 계산한다.
text_auto=True: 각 셀에 상관계수 값을 자동으로 표시한다.
이 히트맵은 happiness 데이터프레임의 숫자형 열 간의 상관관계를 시각화한 것이다.
각 셀에 표시된 숫자와 색상은 상관계수 값을 나타내며, 색상 막대는 상관계수의 범위를 나타낸다.
1에 가까운 값은 강한 양의 상관관계를 의미하며, 노란색으로 표시된다.
-1에 가까운 값은 강한 음의 상관관계를 의미하며, 보라색으로 표시된다.
0에 가까운 값은 상관관계가 거의 없음을 의미하며, 중간색으로 표시된다.
px.scatter_matrix(): Plotly Express의 산점도 행렬을 생성하는 함수다.
happiness: happiness 데이터프레임을 사용한다.
dimensions: 산점도 행렬에 포함될 열들의 리스트다. 이 예제에서는 'Ladder score', 'Logged GDP per capita', 'Social support', 'Healthy life expectancy', 'Freedom to make life choices', 'Generosity', 'Perceptions of corruption' 열들이 포함된다.
color='Ladder score': 각 점의 색상을 'Ladder score' 값을 기준으로 설정한다.
title='세계행복지수': 차트의 제목을 '세계행복지수'로 설정한다.
title_x=0.5: 제목을 차트의 중앙에 위치시킨다.
width=900: 차트의 너비를 900 픽셀로 설정한다.
height=600: 차트의 높이를 600 픽셀로 설정한다.
이 산점도 행렬은 happiness 데이터프레임의 여러 변수 간의 관계를 시각적으로 비교한 것이다.
각 격자는 두 변수 간의 산점도를 나타낸다.
각 점은 데이터프레임의 관측치를 나타내며, 'Ladder score' 값에 따라 색상이 칠해진다.
색상 막대는 'Ladder score' 값을 나타내며, 점수가 낮은 경우(보라색)에서 높은 경우(노란색)로 변한다.
이 산점도 행렬은 각 변수 간의 상관관계를 시각적으로 이해하는 데 유용하다.
px.scatter(): Plotly Express의 산점도를 생성하는 함수다.
happiness: happiness 데이터프레임을 사용한다.
x='Logged GDP per capita': x축에 'Logged GDP per capita' 값을 설정한다.
y='Ladder score': y축에 'Ladder score' 값을 설정한다.
color='Ladder score': 각 점의 색상을 'Ladder score' 값을 기준으로 설정한다.
trendline='ols': 산점도에 대해 선형 회귀선을 추가한다. 'ols'는 Ordinary Least Squares(최소제곱법)을 의미한다.
trendline_color_override='red': 회귀선의 색상을 빨간색으로 설정한다.
width=900: 차트의 너비를 900 픽셀로 설정한다.
이 산점도는 happiness 데이터프레임의 'Logged GDP per capita'와 'Ladder score' 간의 관계를 시각화한 것이다.
각 점은 데이터프레임의 관측치를 나타내며, 'Ladder score' 값에 따라 색상이 칠해진다.
색상 막대는 'Ladder score' 값을 나타내며, 점수가 낮은 경우(보라색)에서 높은 경우(노란색)로 변한다.
빨간색 회귀선은 'Logged GDP per capita'와 'Ladder score' 간의 선형 관계를 나타낸다.
회귀선이 위로 기울어져 있는 것은 두 변수 간의 양의 상관관계를 의미한다. 즉, 1인당 GDP가 높을수록 삶의 만족도 점수가 높아지는 경향이 있다.