바이오 대표

[ matplotlib #8 ] Python matplotlib.pyplot 기본 코드 한번에 정리_8 (Histogram 히스토그램) 본문

Python/matplotlib

[ matplotlib #8 ] Python matplotlib.pyplot 기본 코드 한번에 정리_8 (Histogram 히스토그램)

바이오 대표 2022. 7. 8. 23:14

 

Matplotlib Histogram

정리 1~ 7 에서 python matplotlib.pyplot 의 전반적인 설명과 plotting plt.plot( ), marker, line, label, grid, subplot, scatter, bar plot 에 대해서 살펴보았습니다. 이번 글에서는 해당 라이브러리로 Histogram 즉 히스토그램 그래프에 대한 설명합니다. 

  • histogram  plt.hist( ) 
  • legend label, plt.legend(loc=' ')
  • argument
    • bins
    • label
    • label cumulative

 

Histogram 그래프 그리기

Histogram은 보통 array를 구간을 나누어, 한눈에 보고 싶을때 막대로 개체의 양을 나타낸 그래프입니다. 

plt.hist(array

 

예시) 

일단은 histogram에 사용될 array를 생성해보겠습니다. numpy 를 사용합니다. 

import numpy as np

x = np.random.normal(170, 10, 250)
print(x)

위에 생성된 array를 histogram을 표현합니다. 

import matplotlib.pyplot as plt
import numpy as np

x = np.random.normal(170, 10, 250)

plt.hist(x)
plt.show()

 

 

구간 개수 지정

Histogram 은 구간 범위를 조절해서, 표현할 수 있습니다. argument로 bins = number 을 이용합니다. 

...
plt.hist(x, bins=30)
plt.show()

 

Label 표시하기 

만약 여러개의 데이터를 하나의 그래프에 표현하고자 할때에는, argument label 을 이용해서 어떤 데이터를 표하는지 표시해줄 수 있습니다. 

import matplotlib.pyplot as plt
import numpy as np

x = np.random.normal(170, 10, 250)

plt.hist(x, bins=20, label ='bins=20')
plt.hist(x, bins=30, label ='bins=30')

plt.legend()
plt.show()

 

* legend 위치도 조정 가능합니다. plt.legend(loc=' ') 을 이용하며, 위치로는 'best', 'upper left', 'lower left', 'lower right', 'upper center', 'lower center', 'center left', 'center right' 이 가능합니다. 

 

 

Cumulative (누적) 히스토그램  
import matplotlib.pyplot as plt
import numpy as np

x = np.random.normal(170, 10, 250)

plt.hist(x, bins=20, cumulative = True, label ='Cumulative')
plt.hist(x, bins=20, cumulative = False, label ='Original')

plt.legend()
plt.show()

 

 

Histogram 종류 

단순 bar 뿐 아니라, histtype = '' 으로 다르게 표현할 수도 있습니다. bar, barstacked, step, stepfilled 등이 있습니다. default 값은 bar 입니다. 

 

예시)

import matplotlib.pyplot as plt
import numpy as np

x = np.random.normal(170, 10, 250)

plt.hist(x, bins=20, cumulative = False, label ='Original', histtype='step')

plt.legend()
plt.show()