Python
막대 그래프 & 히스토그램
Haribo-
2022. 11. 22. 10:42
Bar그래프와 Histogram에 대해서 알아봅시다.
우리가 잘알고 있는 Bar그래프(막대형 차트)는 여러 값을 비교하는데 적합합니다. 여러개의 값을 입력 받고 그 값들을 한눈에 비교 할 수 있습니다.
Histogram은 일정 시간 동안의 숫자 데이터 분포를 시각화 하는데 적합합니다.
x와 y 데이터는 각 스포츠의 종목과, 선호하는 학생의 수를 조사한 결과입니다.
x와 y 데이터로 막대 그래프를 그립니다.
z 데이터는 1000개의 정규분포 난수를 담고 있습니다.
z 데이터를 등급을 50개로 나눈 히스토그램으로 출력해봅니다.
이렇게 해보세요!
- 막대 그래프의 데이터의 y축 값을 아래 표를 참고하여 변경하고 실행버튼을 눌러 그래프가 어떻게 변하는지 확인해보세요.축구야구농구배드민턴탁구
13 10 17 8 7 - hist() 함수에서 bins 값을 200으로 변경하고 실행버튼을 눌러 그래프가 어떻게 변하는지 확인해보세요.
Tips!
- 아래 코드는, 하나의 도화지(figure)에
1*2의 모양으로 그래프를 그리도록 합니다. 즉, 그래프를 2개 그리고, 가로로 배치한다는 의미입니다.
axes[0]은 막대 그래프를, axes[1]은 히스토그램을 그립니다.fig, axes = plt.subplots(1, 2, figsize=(8, 4)) Copy
- matplotlib 의 pyplot으로 그래프를 그릴 때, 기본 폰트는 한글을 지원하지 않습니다. 아래는 한글을 지원하는 나눔바른고딕 폰트로 바꾼 코드입니다.
위 코드 덕분에, 막대 그래프에서 축구, 야구, 농구, 배드민턴, 탁구가 올바르게 출력되었습니다.import matplotlib.font_manager as fm fname='./NanumBarunGothic.ttf' font = fm.FontProperties(fname = fname).get_name() plt.rcParams["font.family"] = font Copy
from elice_utils import EliceUtils
elice_utils = EliceUtils()
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
fname='./NanumBarunGothic.ttf'
font = fm.FontProperties(fname = fname).get_name()
plt.rcParams["font.family"] = font
# Data set
x = np.array(["축구", "야구", "농구", "배드민턴", "탁구"])
y = np.array([13, 10, 17, 8, 7]) # [13, 10, 17, 8, 7] 로 변경해보세요.
z = np.random.randn(1000)
fig, axes = plt.subplots(1, 2, figsize=(8, 4))
# Bar 그래프
axes[0].bar(x, y)
# 히스토그램
axes[1].hist(z, bins = 200) # bins를 200으로 변경해보세요.
# elice에서 그래프 확인하기
fig.savefig("plot.png")
elice_utils.send_image("plot.png")