파이썬 시각화 2 바그래프

tnaql·2024년 10월 29일

SQL 2

목록 보기
7/26

plt.bar( , )

첫 번째로 들어가는 게 x축, 두 번째로 들어가는 게 y축이다

간단하게만 만들면 위와 같이 만들 수 있다
하지만, 차트의 이름, x/y축의 이름 등을 넣어주고 싶다면 아래와 같이 만들면 된다

또 다른 바 그래프를 만들어보면 다음과 같이 만들 수 있다

위의 그래프는 오래 일 한 만큼 월급이 높냐는 건데, 히트맵에서 봤던 것처럼 완벽한 양의 상관관계는 아니다. 왜인지 살펴보기 위해 department별 totalworkingyears 와 monthlyincome을 보고 싶은데, 이 상태로는 세 개의 차원을 함께 볼 수 없기 때문에 아래의 FacetGrid를 사용할 수 있다

<드릴다운1>

sns.facetgrid()

위의 설명처럼 department간의 차이도 함께 보고 싶다면 아래와 같이 하면 된다.

facet = sns.FacetGrid(df, col='Department')
=> facet grid 만들건데, 원본 데이터로 할 거고, 추가할 건 Department 컬럼이야 그리고 그 facet grid를 facet 변수에 넣어줘

facet.map_dataframe(sns.barplot, x='TotalWorkingYears','y='MonthlyIncome')
=> 아까 만든 facet grid 를 맵핑할건데, 바그래프의, x축은 total working years 를, y 축에는 monthly income 을 넣어줘

여기서 크기가 적절하지 않아 발생하는 문제를 해결하기 위해 아래와 같은 명령을 내리면 차트간의 사이가 좁혀지고, 크기가 키워진 것을 볼 수 있다

여기서 추가된 건 첫 행 괄호 안의 height =6
그리고 마지막 행의 facet = facet.fig.subplots_adjust(wspace=3, hspace=2)
모두 크기를 조절하기 위한 명령이라고 볼 수 있다

검정색 선은 길수록 편차가 크다는 것을 의미한다
Department의 research&developer 에서 편차가 크기 때문에, 혹시 job level의 영향을 받는지 알아보기 위해 job level 을 추가한다

<드릴다운2>

위에서 살펴본 그래프에서도 확실한 답을 얻지 못 했다. 즉, 부서에 따라서 income이 영향받는 건 아니라는 것을 알게 되었다.
그러면 이제 job Level 에 따른 income을 보고 답을 얻을 수 있을 것이다.
그럼 한 번 더 드릴다운 해서 가면 된다.

앞에서 첫 번째 드릴다운 했을 때 첫번째 행에 col = 'Department' 를 넣어줬는데, 여기서 우리는 하나의 값을 더 넣는 거니까 row = 'Joblevel'을 추가로 넣어주면 아래와 같은 결과를 볼 수 있다

Research&Development 부서의 2,3,4 레벨에서 편차가 심하게 나는 것을 볼 수 있다.
즉, 완전한 상관관계를 가지지는 않는다는 것.

게다가 Sales 부서에서도 편차가 크다는 것을 볼 수 있다.

하지만 하나 알 수 있는 점은 job level에 따라서 income 은 확실히 달라진다는 점이다.

새로운 바 그래프

그러면 여기서 성별과 job level 에서 오는 income 의 차이를 볼 수 있는 바 그래프를 그려보겠다

잘 안 보이지만 위가 여성, 아래가 남성인데, 성별에 따른 수입 차이는 크지 않으나, 여성이 job level이 높은 사람이 적다는 것을 알 수 있다

col, row 등의 값을 변화시키면서 다양한 각도의 바그래프를 그려볼 수 있다

profile
이직 준비중

0개의 댓글