[Python.MatPlotLib] Histogram과 Box Plot 그리기

2021. 1. 5. 05:00Python과 머신러닝/MatPlotLib 데이터 시각화

0. 지난 포스트

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>)

Out[3]

  • In[2]는 1,000,000개의 random data를 생성하여 x라는 변수에 담았다.
  • In[3]는 histogram을 그리는 함수이다. 
    1. x : Histogram을 그리기 위한 데이터를 제공한다.
    2. 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]:

Out[5]

  • In[4]는 100x5의 random data를 생성한다.
  • In[5] plt.boxplot(data, whis=0.9)를 통해 Out[5]의 box and whisker plot을 그린다.
    1. data
      • box plot을 그리기 위한 데이터이다.
      • 100x5의 random 값을 전달해서 Out[5]에도 5개의 box plot이 그려진 것을 확인할 수 있다.
    2. whis=0.9
      • 개념으로만 설명하면 'Outlier(이상치) 판단 기준점'이라고 이해하면 될 것 같다.
      • 위 boxplot에서 동그라미로 표현된 값들이 이상치인데, '어디부터 이상치라고 판단하고, 어디까지 정상 데이터라고 판단하지?'라는 matplotlib의 질문에 대답을 해주는 셈이다.
      • 그래서 whis값이 0에 가까울수록 더 많은 데이터가 outlier로 판별되고, whis가 커질수록 outlier가 없다고 판단하게 된다. 

 

 

3. Horizontal Box Plot 그리기

In [6]:plt.boxplot(data, vert=False, whis=0.9)
Out[6]:

Out[6]

  • In[6]는 In[4]와 동일하고 vert=False만 다르다
    1. vert=False
      • vertical의 약자이다.
      • 즉, Horizontal로 그려달라는 parameter 이다.
      • default 값은 True이기 때문에 기본적으로 vertical box plot이 그려진다.
  • Out[5]와 Out[6]는 동일한 데이터를 수직/수평으로 표현하고 있다.

 

4. 관련 포스트

 

반응형