Kaggle_Survey01: Pie 시각화 [plotly]
dataset 구조 확인하기
1 | import pandas as pd |
1 | df = pd.read_csv("https://raw.githubusercontent.com/hangack/project-green/main/Kaggle_Survey-2021/data/kaggle-survey-2021/kaggle_survey_2021_responses.csv", dtype='unicode') |
Columns 구조는 문자열에서 특정 값을 뽑아내고 input을 받는 함수 포스트에서 확인했으므로 넘어간다.
비교 대상 선정하기
2021 kaggle_survey 분석을 계속 진행한다.
베이스는 2021년 기준 survey 응답 count 수가 비슷한 일본과 중국을 선정했다.
한국 넣으려다 응답수가 낮아 방향을 바꿨다
kaggle_survey_2021_responses
의 모든 row를 사용할 필요 없으므로 Q3(country) 응답에 Jp(Japan), Ch(China)인 요소만 추출한다.
1 | df_ChJp = df[df.Q3.isin(["Japan","China"])] |
Gender [plotly: Pie]
일단 간단히 비교할 수 있는 Gender(Q2)와 Age(Q1) 중 Q2를 Pie 그래프로 시각화할 예정이다.
간단한 Pie 그래프를 사용할 예정이고, 간단한 그래프인 만큼 pie 요소 option을 만질 여지가 많다.
따라서 express
가 아닌 graph_objects
모듈로 작업했다.
plotly.graph_objects.Pie를 사용해서 만든 그래프를 Figure 형식으로 지정하고 fig_j 객체에 저장한다.
아래 코드는 필수 요소인 lables
와 values
만 넣은 결과다.
1 | fig_j = go.Figure(data=[go.Pie(labels=df_Jp['Q2'][1:].value_counts().index, |
대응하는 value_counts 함수 만들기
앞으로 많은 그래프를 그려낼거고 df_Jp['Q2'][1:].value_counts()
형식이 반복된다.
df_Jp['Q2'][1:].value_counts()
을 객체로 만들어서 넣어도 되겠지만, 이번 작업에서 사용할 df은 df_Jp
&df_Ch
2개로 dataframe 객체의 변동이 있고, 칼럼명도 Q1,Q2로 변동이 있다.
위 조건에 부합하는 간단한 함수 하나 만들겠다.
1 | def indiQ_value_counts(dataframe, indi_Qnum): |
1 | df_Jp_gen = indiQ_value_counts(df_Jp, 'Q2') |
subplots: 그래프 figure 합치기
japan과 china 함수를 각각의 figure로 보기엔 불편하다.
subplost를 이용해 하나의 fig로 합칠 예정이다.
1 | from plotly.subplots import make_subplots |
1 | Pie_J = go.Pie(labels=df_Jp_gen.index, |
1 | fig = make_subplots(rows=1, cols=2,specs=[[{"type": "domain"},{"type": "domain"}]]) |
text, color 커스텀
커스텀 색상이나 타이틀 등 텍스트를 넣어 간단한 시각적 커스텀을 입혀보자
1 | Pie_J = go.Pie(labels=df_Jp_gen.index, |
1 | fig = make_subplots(rows=1, cols=2,specs=[[{"type": "domain"},{"type": "domain"}]]) |
시각 요소 커스텀
Trace의 title이 Pie 외부에 위치하는게 맘에들지 않는 부분을 수정하기 위해 시각 효과에서 legend를 제거하는 등 각종 요소 값을 변경한다.
1 | Pie_J = go.Pie(labels=df_Jp_gen.index, |
1 | fig = make_subplots(rows=1, cols=2,specs=[[{"type": "domain"},{"type": "domain"}]]) |
외부링크
Kaggle_Survey01: Pie 시각화 [plotly]
https://hangack.github.io/2021/12/02/Codding/Python/kaggle_survey/kaggle-survey01/