4 기온 데이터를 다양하게 시각화 하기
히스토그램
- 값의 출현 빈도를 표현
import matplotlib.pyplot as plt
plt.hist([1, 1, 2, 3, 4, 5, 6, 6, 7, 8, 10])
plt.show()
주사위 시뮬레이션
임의의 수를 반환하는 랜덤 함수를 활용하여 주사위 시뮬레이션을 코드를 작성하겠다.
import random
print(random.randint(1,6))
3- 주사위를 여러 번 굴리는 상황을 가정해서 for반복문을 사용하여 코드를 작성하겠다. 주사위를 굴렸을 때마다 나타나는 숫자를 기록하기 위해 리스트형 dice 변수를 사용하겠다. 주사위는 6번 굴려 보겠다.
import random
random.seed(72) # 동일한 실습 결과 값을 얻기 위해 동일한 seed 값을 사용
dice = []
for i in range(6):
dice.append( random.randint(1,6) )
print(dice)
[1, 5, 6, 2, 3, 6]
plt.hist(dice, bins=6) # hist()함수의 bins 인자는 몇 개의 구간으로 나눌 것인지를 결정합니다.
plt.show()
- hist()함수의 bins 인자는 몇 개의 구간으로 나눌 것인지를 결정합니다. bins = 10 변경하여 다시 그려 보겠습니다.
plt.hist(dice, bins=10) # hist()함수의 bins 인자는 몇 개의 구간으로 나눌 것인지를 결정합니다.
plt.show()
- 이번에는 주사위를 600번 굴리는 상황을 가정하고 각 숫자나 나타나는 빈도를 그래프로 그려보겠다. 1부터 6 중 각 숫자가 나올 확율을 모두 1/6 이다. 600번 주사위를 굴렸으니 각 숫자가 나올 빈도는 600 * 1/6 = 100 번이다.
import random
random.seed(72) # 동일한 실습 결과 값을 얻기 위해 동일한 seed 값을 사용
dice = []
for i in range(600):
dice.append( random.randint(1,6) )
plt.hist(dice, bins=6)
plt.show()
- 주사위를 굴리는 횟수를 크게 늘려 보겠다. 60만번 해보면 어떨까?
import random
random.seed(72) # 동일한 실습 결과 값을 얻기 위해 동일한 seed 값을 사용
dice = []
for i in range(600000):
dice.append( random.randint(1,6) )
plt.hist(dice, bins=6)
plt.show()
기온 데이터를 히스토그램으로 표현하기
- 최고 기온 데이터만 추출
import csv
f = open('부산.csv', encoding='cp949')
data = csv.reader(f)
next(data)
max_temp_list =[]
for row in data:
if row[-1] != '': # 누락된 데이터가 아닐 경우(데이터가 있을 경우)
max_temp_list.append(float(row[-1])) # row[-1]은 문자열 데이터임으로 float() 함수를 사용하여 숫자형 데이터로 변환 후 저장
f.close()
plt.hist(max_temp_list, bins=100, color='r')
plt.show()
- 8월 데이터만 뽑아서 히스토그램
import csv
import matplotlib.pyplot as plt
import koreanize_matplotlib
f = open('부산.csv', encoding='cp949')
data = csv.reader(f)
next(data)
max_aug =[]
for row in data:
if row[-1] != '': # 최고기온 데이터가 누락되지 않은 경우(데이터가 있을 경우)
month = row[0].split('-')[1] # 행에서 년월일 정보만 추출하여 '년', '월', '일'로 분리하고 '월' 정보만 저장
if month =='08': # 월 정보가 "8월"과 일치하는지 검사
max_aug.append(float(row[-1])) # row[-1]은 문자열 데이터임으로 float() 함수를 사용하여 숫자형 데이터로 변환 후 저장
f.close()
plt.hist(max_aug, bins=100, color='r')
plt.show()
- 위 그래프에 1월 최고 기온 분포를 파란색으로 같이 표시
import csv
import matplotlib.pyplot as plt
import koreanize_matplotlib
f = open('부산.csv', encoding='cp949')
data = csv.reader(f)
next(data)
max_aug =[]
max_jan =[]
for row in data:
if row[-1] != '': # 최고기온 데이터가 누락되지 않은 경우(데이터가 있을 경우)
month = row[0].split('-')[1] # 행에서 년월일 정보만 추출하여 '년', '월', '일'로 분리하고 '월' 정보만 저장
if month =='08': # 월 정보가 "8월"과 일치하는지 검사
max_aug.append(float(row[-1])) # row[-1]은 문자열 데이터임으로 float() 함수를 사용하여 숫자형 데이터로 변환 후 저장
if month =='01':
max_jan.append(float(row[-1]))
f.close()
plt.hist(max_aug, bins=100, color='r', label='')
plt.hist(max_jan, bins=100, color='b')
plt.show()
bar()함수
bar(막대를 표시할 위치, 막대의 높이)
plt.bar([0,1,2,4,6,10], [1,2,3,5,6,7])
plt.show()
'빅데이터 분석가 양성과정 > Python' 카테고리의 다른 글
matplotlib(2) (0) | 2024.07.06 |
---|---|
Matplotlib(1) (0) | 2024.07.06 |
데이터 시각화 기초(2) (2) | 2024.07.05 |
데이터 시각화 기초(1) (3) | 2024.07.05 |
Ch08 클래스 (0) | 2024.07.05 |