일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- SQLite
- Oracle
- 파이썬
- SUM
- airflow.cfg
- TRUNCATE
- 다중 JOIN
- matplotlib
- 데이터시각화
- SQL
- 데이터리안 웨비나
- 그로스해킹
- Limit
- 전처리
- 결측값
- airflow 설치
- pandas
- 데이터분석
- hackerrank
- seaborn
- PostgreSQL
- 프로그래머스
- Round
- join
- not in
- GROUPBY
- 머신러닝
- having
- MySQL
- solvesql
Archives
- Today
- Total
Milky's note
[Part 2] 시각화-box plot 본문
BOX Plot¶
일반적으로 박스 플롯은 전체 데이터로부터 얻어진 아래의 다섯 가지 요약 수치를 사용해서 그려진다.
- 최소값
- 제 1사분위 수 (Q1)
- 제 2사분위 수 또는 중위수 (Q2)
- 제 3사분위 수 (Q3)
- 최대값
사분위 수는 데이터를 4등분한 지점을 의미한다. 예를 들어, 제 1사분위 수는 전체 데이터 중 하위 25%에 해당하는 값이고, 제 3사분위 수는 전체 데이터 중 상위 25%에 해당하는 값이다.
In [1]:
import pandas as pd
#우선 판다스 라이브러리를 import
import matplotlib.pyplot as plt
#다음으로 그래프를 그리기 위한 matplotlib.pyplot 라이브러리를 import 한다.
# 한글 입력이 되지 않을 때는 다음 줄을 입력해주면 된다.
# 맥에는 나눔 고딕이 아닌 애플고딕을 사용해야한다.
from matplotlib import rc
rc('font', family='AppleGothic')
plt.rcParams['axes.unicode_minus'] = False
샘플 데이터¶
In [2]:
df = pd.read_csv('https://bit.ly/ds-house-price-clean')
In [ ]:
df
In [ ]:
df.plot()
#plot가 안될때에는 pip3 install matplotlib로 설치한다
kind 옵션을 통해 원하는 그래프를 그릴 수 있다.
kind 옵션:
- line: 선그래프
- bar: 바 그래프
- barh: 수평 바 그래프
- hist: 히스토그램
- kde: 커널 밀도 그래프
- hexbin: 고밀도 산점도 그래프
- box: 박스 플롯
- area: 면적 그래프
- pie: 파이 그래프
- scatter: 산점도 그래프
box plot¶
In [3]:
df_seoul = df.loc[df['지역'] == '서울']
In [4]:
df_seoul['분양가'].plot(kind='box')
Out[4]:
<AxesSubplot:>
In [6]:
df_seoul.describe()
Out[6]:
연도 | 월 | 분양가 | |
---|---|---|---|
count | 212.00000 | 212.000000 | 212.000000 |
mean | 2017.45283 | 6.566038 | 7308.943396 |
std | 1.31439 | 3.603629 | 1402.869496 |
min | 2015.00000 | 1.000000 | 5061.000000 |
25% | 2016.00000 | 3.000000 | 6519.750000 |
50% | 2017.00000 | 7.000000 | 6895.500000 |
75% | 2019.00000 | 10.000000 | 7732.000000 |
max | 2020.00000 | 12.000000 | 13835.000000 |
IQR은 Inter Quantile Range의 약어로써, (3Q - 1Q) * 1.5 값을 나타낸다.
In [7]:
IQR = (7732 - 6519.75) * 1.5
IQR
Out[7]:
1818.375
In [8]:
## 박스 플롯 max
7732 + IQR
Out[8]:
9550.375
In [9]:
## 박스 플롯 min
6519.75 - IQR
Out[9]:
4701.375
박스플롯은 데이터 outlier 감지 할 때 가장 많이 활용 되며, 25%, median, 75% 분위의 값을 활용하는 용도로 많이 활용됨
matplotlib 사용하여 box plot 그리기¶
In [10]:
import matplotlib.pyplot as plt
import numpy as np
# 1. 기본 스타일 설정
plt.style.use('default')
plt.rcParams['figure.figsize'] = (4, 3)
plt.rcParams['font.size'] = 12
# 2. 데이터 준비
np.random.seed(0)
data_a = np.random.normal(0, 2.0, 1000)
data_b = np.random.normal(-3.0, 1.5, 500)
data_c = np.random.normal(1.2, 1.5, 1500)
# 3. 그래프 그리기
fig, ax = plt.subplots()
ax.boxplot([data_a, data_b, data_c], notch=True, whis=2.5, vert=False)
# vert 값을 False로 두면 수평의 박스 plot를 그릴 수 있다.
ax.set_xlim(-10.0, 10.0)
ax.set_xlabel('Value')
ax.set_ylabel('Data Type')
plt.show()
'Python > 요약 정리' 카테고리의 다른 글
[Part 2] 시각화-area plot, pie chart (0) | 2022.02.13 |
---|---|
[Part 2] 시각화-area plot, pie chart (0) | 2022.02.13 |
[Part 2] 시각화-고밀도 산점 그래프 (0) | 2022.02.13 |
[Part 2] 시각화-히스토그램 (0) | 2022.01.19 |
[Part 2] 시각화-바그래프 (0) | 2022.01.19 |
Comments