본문 바로가기
개발일지/matplotlib

matplotlib 기초 그래프 구현의 원리

by 개발에정착하고싶다 2022. 8. 26.
320x100
import random

# 변수 A
speed_ny = [random.normalvariate(55,5) for i in range(10000)]
# 변수 B
speed_bo = [random.normalvariate(60,8) for i in range(10000)]
# 한개의 변수리스트로만 matplotlib을 사용할때

# 스타일 조정
plt.style.use('seaborn')
# 사이즈 조정
plt.figure(figsize = (14,10))
# 타이틀(제목) 생성
plt.title('Measured Car Speed (Speed Limit 50 mpg)', fontsize = 15)
# 히스토그램 생성
# bins는 갯수의 값이다.
# alpha 는 투명도이며 0~1사이의 값으로 조정이 가능하다.
plt.hist(speed_ny, bins = 100, alpha = 0.6)
# x축 레이블 값 정해주기
plt.xlabel('Speed')
# y축 레이블 값 정해주기
plt.ylabel('occurences')
# 수직선 설정 (VERTICAL LINE)
# 보통의 경우에는 '평균값'의 위치를 보여주기 위해서 사용한다.
plt.vlines(sum(speed_ny)/ len(speed_ny), 0, 400, color = 'red', linestyle = '--', label = 'Mean New York')
# x,y 축의 최소값, 최대값 설정
plt.axis((30,90,0,400))
# x축의 간격 설정
plt.xticks(range(30,91,5))
# y축의 간격 설정
plt.yticks(range(0,401,50))
# grid 표시 (눈금간격? 바둑판?, 격자배경?)
plt.grid(True)
# 범례 표시
plt.legend(loc = 'center right', fontsize = 13)
# 필수값으로 보여주기
plt.show()



# 두개 이상의 변수를 그래프로 만들어서 matplotlib으로 비교를 원할때

plt.style.use('seaborn')
plt.figure(figsize = (14,10))
plt.title('Measured Car Speed (Speed Limit 50 mpg)', fontsize = 15)
plt.hist(speed_ny, bins = 100, label = 'New York Data', alpha = 0.6, color = 'red')
# 추가 된 비교대상
plt.hist(speed_bo, bins = 100, label = 'Boston Data', alpha = 0.6, color = 'blue')
plt.xlabel('Speed')
plt.ylabel('occurences')
plt.vlines(sum(speed_ny)/ len(speed_ny), 0, 400, color = 'red', linestyle = '--', label = 'Mean New York')
# 추가된 Boston data의 중간선
plt.vlines(sum(speed_bo) / len(speed_bo), 0, 400, color = 'blue', linestyle = '-.', label = 'Mean Boston')
plt.axis((30,90,0,400))
plt.xticks(range(30,91,5))
plt.yticks(range(0,401,50))
plt.grid(True)
plt.legend(loc = 'center right', fontsize = 13)
plt.show()

300x250