[모두의 데이터 분석 with 파이썬]_Part 2. 데이터 시각화 기초
* 다음 내용은 [모두의 데이터 분석 with 파이썬] 을 읽고 실습한 내용입니다.
** 중간에 csv 파일 전부를 출력한 결과는 보여주는데에는 의미가 없다고 생각해 간략하게 줄였습니다.
from IPython.core.display import display, HTML
display(HTML("<style> .container{width:90% !important;}</style>"))
Unit04¶
#% matplotlib inline: 별도의 창이 아니라, 주피터 노트북 안에서 그래프 결과를 보고 싶을 때 설정
import matplotlib.pyplot as plt
plt.title('plotting')
plt.plot([10, 20, 30, 40])
plt.show()
입력한 리스트 값이 y축 값으로 입력, x축은 자동으로 0부터 1씩 증가한다. plt.title('제목 문자열'): 제목 plt.show(): 그래프를 그리라는 명령어
import matplotlib.pyplot as plt
plt.plot([1,2,3,4],[12,43,25,15])
plt.show()
첫 번째 리스트가 x축 값, 두 번째 리스트가 y축 값
import matplotlib.pyplot as plt
plt.title('legend')
plt.plot([10, 20, 30, 40],
color = 'skyblue',
linestyle = '--',
label='asc')
plt.plot([40, 30, 20, 10],
'pink',
ls = ':',
label='desc')
plt.legend(loc = 7)
plt.show()
label: 범례
plt.legend(): 범례를 따로 출력, 괄호안 생략 가능.
2 9 1
6 10 5,7
3 8 4
0은 그래프 따라 자동으로 위치 선정
color = '색 이름' or '색 이름': 선 색 지정
r g b k y: 각 색의 약자
linestyle = '' or ls = '' : 선 스타일
-- , :
import matplotlib.pyplot as plt
plt.title('legend')
plt.plot([10, 20, 30, 40],
'r.--',
label='asc')
plt.plot([40, 30, 20, 10],
'y^:',
label='desc')
plt.legend(loc = 7)
plt.show()
'색상,마커모양,선모양' 순으로 간단히 나타낼 수도 있다.
Unit05¶
import csv
f = open('seoul.csv')
data = csv.reader(f)
next(data)
result = []
for row in data:
if (row[-1]) != '':
result.append(float(row[-1]))
print('데이터의 길이는', len(result), '\n')
print(result)
if문 내용: 최고기온의 값이 비어있지 않다면, result의 값으로 추가해라.
len(데이터): 데이터의 길이
import csv
import matplotlib.pyplot as plt
f = open('seoul.csv')
data = csv.reader(f)
next(data)
result = []
for row in data:
if (row[-1]) != '':
result.append(float(row[-1]))
plt.figure(figsize = (10,2))
plt.plot(result,'r')
plt.show()
plt.figure(figsize = (a,b)): 가로로 a인치, 세로로 b인치로 크기를 조정
date = '1999-12-31'
print(date.split('-')[0])
print(date.split('-')[1])
print(date.split('-')[2])
import csv
f = open('seoul.csv')
data = csv.reader(f)
next(data)
result = []
for row in data:
if row[-1] != '':
if row[0].split('-')[1] == '08':
result.append(float(row[-1]))
plt.figure(figsize = (10,2))
plt.plot(result, 'hotpink')
plt.show
가장 더운 달인 8월의 최고 기온을 그래프로 그림
import csv
f = open('seoul.csv')
data = csv.reader(f)
next(data)
result = []
for row in data:
if row[-1] != '':
if row[0].split('-')[1] == '12' and row[0].split('-')[2] == '31':
result.append(float(row[-1]))
plt.plot(result, 'hotpink')
plt.show
특정 날짜의 매년 온도를 확인하는 방법
import csv
import matplotlib.pyplot as plt
f = open('seoul.csv')
data = csv.reader(f)
next(data)
high = []
low = []
avg = []
for row in data:
if row[-1] != '' and row[-2] != '' :
if 1983 <= int(row[0].split('-')[0]):
if row[0].split('-')[1] == '12' and row[0].split('-')[2] == '31':
high.append(float(row[-1]))
low.append(float(row[-2]))
avg.append(float(row[-3]))
plt.rc('font', family = 'Malgun Gothic')
plt.title('마지막 날의 기온 변화 그래프')
plt.rcParams['axes.unicode_minus'] = False
plt.plot(high, 'hotpink', label = 'high')
plt.plot(low, 'skyblue', label = 'low')
plt.plot(avg, 'yellowgreen', label = 'avg')
plt.legend()
plt.show()
plt.rcParams['axes.unicode_minus'] = False : - 기온 표시가 제대로 나오지 않을 때 쓰는 코드
Unit06¶
import matplotlib.pyplot as plt
plt.hist([1,1,2,3,4,5,6,6,7,8,10])
plt.show()
import matplotlib.pyplot as plt
import random
dice = []
for i in range(1000000):
dice.append(random.randint(1,6))
print(dice)
plt.hist(dice, bins = 6)
plt.show()
randint(a,b): a 이상 b 이하의 정수 중 하나를 무작위로 선택한다 plt.hist(bins = ) : 가로축의 구간 갯수 설정 속성
import csv
import matplotlib.pyplot as plt
f = open('seoul.csv')
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()
import csv
import matplotlib.pyplot as plt
f = open('seoul.csv')
data = csv.reader(f)
next(data)
aug = []
for row in data:
month = row[0].split('-')[1]
if row[-1] != '' :
if month == '08':
aug.append(float(row[-1]))
plt.hist(aug, bins = 100, color = 'r')
plt.show()
import csv
import matplotlib.pyplot as plt
f = open('seoul.csv')
data = csv.reader(f)
next(data)
jan = []
aug = []
for row in data:
month = row[0].split('-')[1]
if row[-1] != '':
if month == '01':
jan.append(float(row[-1]))
if month == '08':
aug.append(float(row[-1]))
plt.hist(jan, bins = 100, color = 'blue', label = 'jan')
plt.hist(aug, bins = 100, color = 'red', label = 'aug')
plt.legend()
plt.show()
import matplotlib.pyplot as plt
import random
import numpy as np
result = []
for i in range(13):
result.append(random.randint(1, 1000))
print(sorted(result))
plt.boxplot(result)
plt.show()
result = np.array(result)
print('1/4: '+str(np.percentile(result,25)))
print('2/4: '+str(np.percentile(result,50)))
print('3/4: '+str(np.percentile(result,75)))
import csv
f = open('seoul.csv')
data = csv.reader(f)
next(data)
result = []
for row in data:
if row[-1] != '':
result.append(float(row[-1]))
import matplotlib.pyplot as plt
plt.boxplot(result)
plt.show()
import csv
import matplotlib.pyplot as plt
f = open('seoul.csv')
data = csv.reader(f)
next(data)
jan = []
aug = []
for row in data:
month = row[0].split('-')[1]
if row[-1] != '':
if month == '01':
jan.append(float(row[-1]))
if month == '08':
aug.append(float(row[-1]))
plt.boxplot(jan)
plt.boxplot(aug)
plt.show()
plt.boxplot([jan, aug])
plt.show()
import csv
import matplotlib.pyplot as plt
f = open('seoul.csv')
data = csv.reader(f)
next(data)
month = [[],[],[],[],[],[],[],[],[],[],[],[]]
for row in data:
if row[-1] != '':
month[int(row[0].split('-')[1])-1].append(float(row[-1]))
plt.boxplot(month)
plt.show()
import csv
import matplotlib.pyplot as plt
f = open('seoul.csv')
data = csv.reader(f)
next(data)
day = []
for i in range(31):
day.append([])
for row in data:
if row[-1] != '':
if row[0].split('-')[1] == '08':
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'): 그래프의 스타일을 지정하는 코드, 회색의 격자무늬와 2/4 선의 색이 바뀜