- 데이터 리스트에 저장하기
import csv
f = open('jinju.csv', 'r', encoding='cp949')
data = csv.reader(f)
header = next(data)
result=[]
for row in data:
if row[-1]!='':
result.append(float(row[-1]))
print(result)
[3.0, 7.9, 8.5, 7.0, 6.3, 9.3, 11.9, 14.6, 14.9, ...]
- 데이터 시각화하기
import csv
import matplotlib.pyplot as plt
f = open('jinju.csv', 'r', encoding='cp949')
data = csv.reader(f)
header = next(data)
result=[]
for row in data:
if row[-1]!='':
result.append(float(row[-1]))
plt.plot(result, 'r')
plt.show()
+) 그래프 크기 조절하기
plt.figure(figsize = (10, 2)) #가로로 10인치, 세로로 2인치로 설정
- 날짜 데이터 추출하기
import csv
import matplotlib.pyplot as plt
f = open('jinju.csv', 'r', encoding='cp949')
data = csv.reader(f)
header = next(data)
result=[]
for row in data:
if row[-1]!='':
if row[0].split('-')[1] =='08': #8월에 해당하는 값이라면
result.append(float(row[-1]))
plt.plot(result, 'r')
plt.show()
1983년 이후 1월 29일의 최고 기온과 최저 기온 데이터 출력하기
import csv
import matplotlib.pyplot as plt
f = open('jinju.csv', 'r', encoding='cp949')
data = csv.reader(f)
next(data)
high=[]
low=[]
for row in data:
if row[-1]!='' and row[-2]!='':
if 1983 <= int(row[0].split('-')[0]):
if row[0].split('-')[1] =='01' and row[0].split('-')[2] =='29':
high.append(float(row[-1]))
low.append(float(row[-2]))
plt.plot(high, 'r')
plt.plot(low, 'b')
plt.show()
오늘 날짜의 기온 변화를 그래프로 그리기
import csv
import matplotlib.pyplot as plt
f = open('jinju.csv', 'r', encoding='cp949')
data = csv.reader(f)
next(data)
high=[]
low=[]
for row in data:
if row[-1]!='' and row[-2]!='':
if 1983 <= int(row[0].split('-')[0]):
if row[0].split('-')[1] =='02' and row[0].split('-')[2] =='14':
high.append(float(row[-1]))
low.append(float(row[-2]))
plt.rc('font', family='NanumBarunGothic')
plt.rcParams['axes.unicode_minus'] = False
plt.title('1월 29일의 기온 변화 그래프')
plt.plot(high, 'r')
plt.plot(low, 'b')
plt.show()
기온 데이터 다양하게 시각화하기
히스토그램
- hist() 함수 : 데이터로 히스토그램을 그릴 수 있음
import matplotlib.pyplot as plt
plt.hist([1,1,2,3,4,5,6,6,7,8,10])
plt.show()
- 주사위 시뮬레이션
5개의 숫자가 저장된 dice 리스트를 히스토그램으로 표현
bins 옵션: 가로축의 구간 개수를 설정하는 속성
import matplotlib.pyplot as plt
import random
dice=[]
for i in range(5):
dice.append(random.randint(1, 6))
plt.hist(dice, bins=6)
plt.show()
기온 데이터를 히스토그램으로 표현하기
import csv
import matplotlib.pyplot as plt
f = open('jinju.csv', encoding='cp949')
data = csv.reader(f)
next(data)
result=[]
for row in data:
if row[-1] != '':
result.append(float(row[-1]))
plt.hist(result, bins=100, color='r')
plt.show()
기온 데이터를 상자 그림으로 표현하기
상자 그림: 가공하지 않은 자료를 그대로 이용하는 것이 아닌, 자료에서 얻어낸 최댓값, 최솟값, 상위 1/4, 2/4, 3/4에 위치한 값을 보여주는 그래프
boxplot(): 상자 그림으로 데이터를 표현
import matplotlib.pyplot as plt
import random
result=[]
for i in range(13):
result.append(random.randint(1, 1000))
print(sorted(result))
plt.boxplot(result)
plt.show()
실행 결과
[88, 199, 210, 229, 302, 328, 360, 439, 496, 624, 669, 728, 797]
1월과 8월의 상자 그림
import csv
f = open('jinju_1.csv','r', encoding='cp949')
data = csv.reader(f)
next(data)
aug = []
jan = []
for row in data :
month = row[0].split('-')[1]
if row[-1] != '' :
if month == '08':
aug.append(float(row[-1]))
if month == '01':
jan.append(float(row[-1]))
import matplotlib.pyplot as plt
plt.boxplot(aug)
plt.boxplot(jan)
plt.show()
최고 기온 데이터를 월별로 구분하여 표현하기
1. 데이터를 월별로 분류해 저장한다.
2. 월별 데이터를 상자 그림으로 그린다.
import matplotlib.pyplot as plt
import csv
f = open('jinju_1.csv')
data = csv.reader(f)
next(data)
# 월별 데이터를 저장할 리스트 month 생성(12개)
month = [[],[],[],[],[],[],[],[],[],[],[],[]]
for row in data :
if row[-1] != '' :
# 월과 같은 번호의 인덱스에 월별 데이터 저장(예:1월→month[0] )
month[int(row[0].split('-')[1])-1].append(float(row[-1]))
plt.boxplot(month)
plt.show()
8월 일별 기온 데이터를 상자 그림으로 표현하기
import matplotlib.pyplot as plt
import csv
f = open('jinju_1.csv')
data = csv.reader(f)
next(data)
day = [] # ➊ 일별 데이터를 저장할 리스트 day 생성
for i in range(31) :
day.append([]) # ➋ day 리스트 내 31개 리스트 생성
for row in data :
if row[-1] != '' :
if row[0].split('-')[1] == '08': # 8월이라면
# 최고 기온 값 저장
day[int(row[0].split('-')[2])-1].append(float(row[-1]))
plt.style.use('ggplot') # ➌ 그래프 스타일 지정
plt.figure(figsize=(10,5), dpi=300) # ➍ 그래프 크기 수정
plt.boxplot(day, showfliers=False) # ➎ 아웃라이어 값 생략
plt.show()
plt.style.use('ggplot') : 그래프의 스타일을 지정
plt.boxplot(day, showfliers=False) / showfliers = False : 이상치 값이 보이지 않게 설정함
'데이터 분석' 카테고리의 다른 글
[데이터 분석] 다양한 형태로 시각화하기 (막대 그래프, 항아리 그래프) (0) | 2024.01.31 |
---|---|
[데이터 분석] 우리 동네 인구 구조 시각화하기 (2) | 2024.01.29 |
[데이터 분석] A열의 한글이 깨져 보일 때 해결 방법 (1) | 2024.01.29 |
[데이터 분석] 데이터 시각화 - 그래프 그리기, 옵션 추가하기 (1) | 2024.01.28 |
[데이터 분석] 데이터 분석 기초 개념 (1) | 2024.01.28 |