반응형

파이썬 Matplotlib을 이용한 데이터 시각화 프로그래밍3 - Matplotlib으로 막대그래프, 히스토그램 그리기




막대 그래프(Bar Chart)나 히스토그램은 특정 그룹의 데이터의 추세와 정량적인 분포를 파악하는데 매우 유용합니다. 



Matplotlib으로 막대 그래프 그리기

다음과 같은 두 개의 데이터 세트가 있다고 가정합니다.


세트1: (1, 5), (3, 3), (5, 9), (7, 2), (9, 8) 

세트2: (2, 8), (4, 7), (6, 2), (8, 11), (10, 4)


이를 막대 래프로 그리기 위한 코드는 아래와 같습니다.




>>> plt.bar(data_x1, data_y1, label='Set 1', color='b')


Matplotlib에서 막대 그래프를 그리는 함수는 plt.bar() 입니다. 막대의 폭을 지정하지 않으면 막대의 폭이 0.8로 정해집니다. data_x1으로 지정된 좌표에서 폭이 0.8이고 높이가 data_y1, color로 지정된 색상의 막대를 그립니다. Matplotlib에서 색상은 'r'이 Red, 'g'는 Green, 'b'는 Blue를 뜻합니다.


color값으로 #AA2848 처럼 RGB의 색상값으로 표현해도 됩니다.


위 코드에서 Set 2의 막대 그래프 색상을 #AA2848로 저정하여 실행하면 아래와 같은 결과가 나옵니다.




막대의 폭 0.5로 조정하고 싶다면 plt.bar()의 인자로 width = 0.5를 지정하면 됩니다. 아래는 Set 2의 막대그래프 폭을 0.5로 지정하여 출력한 결과입니다.





Matplotlib으로 히스토그램 그리기

히스토그램은 막대그래프와 모양은 비슷하나, 데이터가 있을 때 특정 범위의 값들을 그룹화하여 막대그래프 모양으로 표시하는 것입니다. 예를 들어 아래와 같은 30개의 데이터가 있다고 가정합니다.


22,55,62,45,21,22,34,42,42,4,99,102,110,120,121,122,130,111,115,112,80,75,65,54,44,43,42,48,16,11


이 데이터를 10단위의 간격으로 히스토그램을 그리는 코드는 아래와 같습니다. 


 



Matplotlib에서 히스토그램을 그리는 함수는 plt.hist() 입니다. 위 코드에서 변수 bins는 데이터 분류 기준이 되는 간격을 정의합니다. 여기서는 0~10, 11~20, 21~30,, 과 같이 간격을 10으로 정의했습니다. 히스토그램에서 BIN은 분류하고자 하는 범위라고 생각하면 됩니다. data에 있는 값들을 헤아려서 0~10, 11~20,,, 범위에 있는 개수를 히스토그램으로 나타냅니다. 


결과를 보면 data에 있는 값들 중 0~10 사이에 있는 값은 1개, 60~70사이에 있는 값은 2개임을 알 수 있습니다.


만약, 데이터를 분류하는 범위를 수동으로 지정하지 않고 BIN의 크기로 정해줄 수도 있습니다. data에 있는 값들을 분류하여 BIN의 크기대로 범위를 자동으로 정하고 결과를 화면에 출력하는 것이죠.


위 코드에서 bins = 8로 수정하고 실행하면 아래와 같은 결과가 출력됩니다.




BIN의 크기에 따라 data를 분류하는 값의 범위가 자동적으로 조정되었음을 알 수 있습니다.


이미치 처리를 위해 히스토그램을 응용하기도 하는데, 여기를 눌러 살펴보세요~ 


반응형

+ Recent posts