기본 콘텐츠로 건너뛰기

파이썬(Python)을 이용한 히스토그램 그리기

파이썬을 이용해 히스토그램을 그릴 수 있다. 예시를 통해 살펴보자.

먼저 아래와 같이 body라는 데이터프레임을 만든다.
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import pandas as pd

height = [170, 168, 177, 181 ,172, 171, 169, 175, 174, 178, 170, 167, 177, 182 ,173, 171, 170, 179, 175, 177, 186, 166, 183, 168]
weight = [70, 66, 73, 77, 74, 73, 69, 79, 77, 80, 74, 68, 71, 76, 78, 72, 68, 79, 77, 81, 84, 73, 78, 69]

# DataFrame 만들기

body = pd.DataFrame(
    {'height': height,
    'weight': weight
    }
)

body.tail()

위 코드에 대한 설명은 "파이썬(Python) Pandas를 이용한 데이터프레임(DataFrame) 만들기" 포스팅에 설명해 놨으니 참고하자.

아래의 코드가 이번 포스팅의 메인인 히스토그램을 그리는 방법에 대한 설명이다.

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# 히스토그램 그리기

import matplotlib.pylab as plt
import numpy as np

body['height'].plot(kind="hist", range=(160, 190), bins = 12, edgecolor ="black" )

avg_height = np.average(body['height'])
plt.axvline(avg_height, color ='red', linestyle ='dotted', linewidth=3, label='average')
plt.legend()

plt.title("Histogram Example")
plt.xlabel("height")

plt.show()

히스토그램을 그리기 위해 먼저, matplotlib.pylab을 import한다.
body['height']를 이용해 body 데이터프레임의 height만 가져온다.
그런 다음 plot(kind="hist)를 사용해 히스토그램을 그린다. 그 뒤엔 여러 옵션들을 설정해줄 수 있다.

range는 히스토그램으로 표시할 범위를 지정하는 것이다.
bins는 히스토그램의 구간을 몇 개로 나눌지 지정하는 것이다.
edgecolor은 히스토그램의 윤곽선 색을 지정하는 것이다.

히스토그램을 그리고 plt.show()를 사용하면 히스토그램이 그려진다.
히스토그램을 그리는 데 몇 가지 옵션들은 지정하여 더 예쁘게 그릴 수 있다. 이 옵션들은 히스토그램만에 국한되지 않는다. 다른 그래프를 그릴 때도 사용할 수 있다.
plt.title()은 히스토그램의 제목을 상단에 지정하는 것이고,
plt.xlabel()은 히스토그램의 x축 제목을 정하는 것이다. y축 제목을 지정하고 싶으면, plt.ylabel()을 사용하면 된다.

히스토그램에 average 값을 선으로 넣어보자. 먼저 averag를 구해야 한다. average를 쉽게 구하기 위해서는 numpy 라이브러리를 import한다.
구하려는 평균값인 body['height']를 np.average() 메서드를 사용해 평균을 구한다.
plt.axvline()을 사용해서 평균값을 x축에 수직으로 긋는다.
옵션값으로 color, linestyle, linewidth, label을 지정할 수 있다.
plt.legend()를 사용해 라벨을 출력한다.

최종 결과물은 아래와 같다.

끝.

댓글

이 블로그의 인기 게시물

파이썬(Python)을 이용한 산점도(scatter) 그리기

파이썬의 Matplotlib를 이용해 데이터의 산점도(scatter plot)를 그릴 수 있다. 예시를 통해 살펴보자. 먼저 아래와 같이 데이터 프레임 예시를 만든다. 1 2 3 4 5 6 7 8 9 10 import pandas as pd height = [ 170 , 168 , 177 , 181 , 172 , 171 , 169 , 175 , 174 , 178 , 170 , 167 , 177 , 182 , 173 , 171 , 170 , 179 , 175 , 177 , 186 , 166 , 183 , 168 ] weight = [ 70 , 66 , 73 , 77 , 74 , 73 , 69 , 79 , 77 , 80 , 74 , 68 , 71 , 76 , 78 , 72 , 68 , 79 , 77 , 81 , 84 , 73 , 78 , 69 ] # DataFrame 만들기 body = pd . DataFrame( { 'height' : height, 'weight' : weight} ) body라는 이름의 데이터 프레임(테이블)이 만들어졌다. 이제, body 테이블의 데이터들의 분포를 산점도로 그려보자. 산점도를 그리는 코드는 아래와 같다. 1 2 3 4 5 6 7 8 9 10 # 산점도(scatter) 그리기 import matplotlib.pylab as plt plt . scatter( body[ 'weight' ], body[ 'height' ], label = "data" ) plt . legend(loc = "best" ) plt . xlabel( 'weight' ) plt . ylabel( 'height'

웨딩 드레스 스케치 도안

웨딩 드레스샵 투어를 다니면서 샘플로 드레스를 입는 경우에는 드레스 사진을 찍지 못하게 하는 샵이 많다. ​ 그래서 투어를 돌고 나면 어떤 샵의 어떤 스타일이 신부에게 잘 어울렸는지 헷갈릴 수가 있다. ​ 하지만 투어를 다닐 때 드레스샵에서 입은 드레스의 특징과 느낌을 잘 기록하면 샵을 선택하는 데 도움이 될 수 있다. ​ 드레스 투어를 다닐 때 드레스를 기록할 스케치 도안은 아래 링크에서 확인/다운로드 할 수 있다. 웨딩 드레스 스케치 도안 확인/다운로드 하기 투어를 마친 후 드레스샵과 계약을 하고, 드디어 본식 드레스를 고를 때에는 사진을 찍을 수 있는 경우가 많다. ​ 이 땐 사진을 잘 찍어서 어떤 드레스를 입을지 잘 선택하도록 하자. ​ ​

DEMOS Calculator - 웹에서 그래프 그리기

수식의 그래프를 그려보고 싶을 때 편리한 웹 서비스가 있어서 소개한다. DEMOS Calculator(https://www.desmos.com/calculator) DEMOS Calculator는 수식을 입력하면 자동으로 그래프를 그려준다. 아래는 로그함수를 입력한 모습이다. 좌측 영역의 수식 입력창에 수식을 입력하면 실시간으로 그래프를 확인할 수 있다. 좌측 상단의 햄버거 바를 클릭하면 아래와 같이 다양한 예시 그래프들도 확인할 수 있다. 수학식에 따라 그래프를 깔끔하게 그려야 할 때 요긴하게 사용할 수 있는 웹 서비스이다. 끝.