[Python.MatPlotLib] Histogram과 Box Plot 그리기
2021. 1. 5. 05:00ㆍPython과 머신러닝/MatPlotLib 데이터 시각화
0. 지난 포스트
- 2020/12/31 - [Python과 머신러닝/MatPlotLib 데이터 시각화] - [Python.MatPlotLib] MatPlotLib으로 그래프 그리기, 시각화, subplot/axes, figure
- 2021/01/01 - [Python과 머신러닝/MatPlotLib 데이터 시각화] - [Python.MatPlotLib] 그래프 꾸미기 I - 색깔 / 제목 / 선형태 지정하기와 latex식 표현하기
- 2021/01/02 - [Python과 머신러닝/MatPlotLib 데이터 시각화] - [Python.MatPlotLib] 그래프 꾸미기 II - 범례(Legend) / X,Y축 Label, 텍스트 및 화살표 / grid / ylim/ savefig
- 2021/01/03 - [Python과 머신러닝/MatPlotLib 데이터 시각화] - [Python.MatPlotLib] 그래프 꾸미기 III - 통신 데이터 분석 실습
- 2021/01/04 - [Python과 머신러닝/MatPlotLib 데이터 시각화] - [Python.MatPlotLib] Scatter Plot 실습
1. Histogram 그리기
In [1]:import numpy as np
import matplotlib.pyplot as plt
In [2]:x = np.random.randn(1000000)
In [3]:plt.hist(x, bins=10000)
Out[3]:(array([1., 0., 0., ..., 0., 0., 1.]),
array([-5.10950947, -5.10849022, -5.10747097,
...,
5.08097576, 5.08199501, 5.08301427]),
<BarContainer object of 10000 artists>)
- In[2]는 1,000,000개의 random data를 생성하여 x라는 변수에 담았다.
- In[3]는 histogram을 그리는 함수이다.
- x : Histogram을 그리기 위한 데이터를 제공한다.
- bins=10000
- histogram 데이터를 몇 개의 칸으로 나눠서 표현할지를 정하는 값이다.
- 10,000개의 칸에 데이터를 나눠서 histogram으로 표현한다
2. BoxPlot 그리기
In [4]:data = np.random.randn(100, 5)
In [5]:plt.boxplot(data, whis=0.9)
Out[5]:
- In[4]는 100x5의 random data를 생성한다.
- In[5]는 plt.boxplot(data, whis=0.9)를 통해 Out[5]의 box and whisker plot을 그린다.
- data
- box plot을 그리기 위한 데이터이다.
- 100x5의 random 값을 전달해서 Out[5]에도 5개의 box plot이 그려진 것을 확인할 수 있다.
- whis=0.9
- 개념으로만 설명하면 'Outlier(이상치) 판단 기준점'이라고 이해하면 될 것 같다.
- 위 boxplot에서 동그라미로 표현된 값들이 이상치인데, '어디부터 이상치라고 판단하고, 어디까지 정상 데이터라고 판단하지?'라는 matplotlib의 질문에 대답을 해주는 셈이다.
- 그래서 whis값이 0에 가까울수록 더 많은 데이터가 outlier로 판별되고, whis가 커질수록 outlier가 없다고 판단하게 된다.
- data
3. Horizontal Box Plot 그리기
In [6]:plt.boxplot(data, vert=False, whis=0.9)
Out[6]:
- In[6]는 In[4]와 동일하고 vert=False만 다르다
- vert=False
- vertical의 약자이다.
- 즉, Horizontal로 그려달라는 parameter 이다.
- default 값은 True이기 때문에 기본적으로 vertical box plot이 그려진다.
- vert=False
- Out[5]와 Out[6]는 동일한 데이터를 수직/수평으로 표현하고 있다.
4. 관련 포스트