Matplotlib - barplot() & boxplot()
category
URL
date
Jan 27, 2023
slug
Matplotlib-barplot-boxplot
author
status
Public
tags
Playdata_Python
summary
Matplotlib barplot & boxplot
type
Post
thumbnail
updatedAt
Jan 27, 2023 08:19 AM
barplot()
- x와 hue를 카테고리화해서 body_mass_g 값의 평균과 신뢰구간(confidence intervals)을 구해서 바 플롯으로 표현
df = sns.load_dataset("penguins")
sns.barplot(data=df,x="species",y="body_mass_g",hue="sex")

boxplot()
- 박스-휘스커 플롯(Box-Whisker Plot) 혹은 간단히 박스 플롯이라 불림
- 박스 플롯은 박스와 박스 바깥의 선(whisker)으로 이루어짐
- 박스는 실수 값 분포에서 사분위수(Q1)와 3사분위수(Q3)를 뜻함.
- 3사분위수와 1사분수의 차이(Q3-Q1)를 IQR(interquartile range)라고 함
- 박스 내부의 가로선은 중앙값을 나타냄
- 박스 외부의 세로선은 1사분위 수보다 1.5 x IQR만큼 낮은 값과 3사분위 수보다 1.5xIQR만큼 높은 값의 구간을 기준으로 그 구간의 내부에 가장 큰 데이터와 가장 작은 데이터를 잇는 선
- 바깥의 점은 아웃라이어(outlier)라고 불리며 일일히 점으로 표시
1. boxplot() 메서드에 x값으로 Series만을 전달
# boxplot()
df = sns.load_dataset("titanic")
sns.boxplot(x=df["age"])

2.카테고리화된 column을 하나의 분류 값으로 추가하기 위해서 y키워드 인수 설정 후
y축을 기준으로 카테고리별 box-plot을 unique한 value의 개수만큼 나눠서 얻을 수 있음.
sns.boxplot(data=df, x="age", y="class")

3.box plot을 그렸는데 여러개로 출력된 그래프의 순서가 맘에 안들경우
- order키워드 인수 사용
- order 키워드 인수로 전달할 값을 리스트 형태로 작성 원하는 차례로 ticklabel을 적으면 된다.
sns.boxplot(data=df,x="fare",y="alive",order=["yes","no"])

4.수치값을 갖는 column 여럿을 동시에 하나의 box plot 플롯에 표현 가능
- data 키워드 인수로 DataFrame을 전달 할 때 그래프로 표현하고 싶은 수치 값을 갖는 column들을 인덱싱해서 DataFrame 형태로 전달
- 방향을 바꾸고 싶으면 orient 키워드 인수에 h(수평), v(수직) 값을 줘서 설정
# 수치 값을 갖는 column 여럿을 동시 하나로
sns.boxplot(data=df[["age","fare"]],orient="v")
