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")
notion image

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"])
notion image
 
2.카테고리화된 column을 하나의 분류 값으로 추가하기 위해서 y키워드 인수 설정 후 y축을 기준으로 카테고리별 box-plot을 unique한 value의 개수만큼 나눠서 얻을 수 있음.
sns.boxplot(data=df, x="age", y="class")
notion image
3.box plot을 그렸는데 여러개로 출력된 그래프의 순서가 맘에 안들경우
  • order키워드 인수 사용
  • order 키워드 인수로 전달할 값을 리스트 형태로 작성 원하는 차례로 ticklabel을 적으면 된다.
sns.boxplot(data=df,x="fare",y="alive",order=["yes","no"])
 
notion image
4.수치값을 갖는 column 여럿을 동시에 하나의 box plot 플롯에 표현 가능
  • data 키워드 인수로 DataFrame을 전달 할 때 그래프로 표현하고 싶은 수치 값을 갖는 column들을 인덱싱해서 DataFrame 형태로 전달
  • 방향을 바꾸고 싶으면 orient 키워드 인수에 h(수평), v(수직) 값을 줘서 설정
# 수치 값을 갖는 column 여럿을 동시 하나로
sns.boxplot(data=df[["age","fare"]],orient="v")
 
notion image