티스토리 뷰
데이터의 시각화
데이터에는 비즈니스가 담겨 있다.
데이터 시각화의 목적은 비즈니스의 인사이트를 파악하는 것.
언제나 요약된 정보가 표현되기 때문에, 요약을 하는 관점에 따라 해석의 결과가 달라진다.
어떤 식으로든 요약을 한다면 정보의 손실이 발생한다는 걸 유념해야 한다.
matplotlib,seaborn
data.dropna(axis = 0, inplace = True)
dropna는 Nan을 없애는 함수.
how=any 혹은 all을 하는데, 디폴트는 any. axis=0이면 행을 삭제하는 것.
차트 그리기
plt.plot(df['컬럼명'])
plt.show()
이때 X축은 해당 값의 인덱스 기준이다.
인덱스 기준이라서 값이 들쭉날쭉 할 수 있다.
물론 X축과 Y축을 지정할 수도 있다.
plt.plot(df['일자'], df['컬럼명1'])
plt.show()
plt.plot('일자', '컬럼명1', data = df) #위와 똑같은 그래프를 그린다.
plt.show()
앞이 X축, 뒤가 Y축.
data 파라미터에 넣어서 만드는 방법도 있다.
data에 오는 데이터 형식은 리스트도 되고, 넘파이도 되나, 무조건 1차원이어야 한다.
또한, x,y의 두 개의 개수가 맞아야 한다.
&&&
실제 파일럿 프로젝트 - 6주
데이터 구조 만드는데만 - 4주
모델링하는데 - 1주 (밤에도 돌려놓고 몇백개 중에 고르면 된다)
현장 테스트 하는데 - 1주
처음에 CRISP-DM 한 바퀴를 돌고 또 돌아야 하는 이유를 알 수 있게 된다.
이렇게 안했을 텐데라는 생각을 해야 한다.
2바퀴, 3바퀴 돌 생각을 해야 한다.
프로젝트 심사하러 들어가는데 최고 전문가가 되는 대상자들, 공모전 심사
맨날 하는 질문
1. 그 프로젝트로 문제가 해결되었는가? 그걸 어떻게 알 수 있는가?
2. 다시 처음부터 시작하게 된다면, 무엇을 더 보완해서 하겠습니까? 어떤 부분을 개선하겠습니까?
항상 유념하자
&&&
그래프 꾸미기
plt.plot( )
plt.xticks(rotation =30) #x축 값 꾸미기
plt.xlabel('x축 이름')
plt.ylabel('y축 이름')
plt.title('타이틀')
plt.show()
plt.show()는 한꺼번에 그린다.
라인 스타일 조정하기
color = 'r','g','b'...
linestyle= 'solid', 'dashed', 'dashdot', 'dotted' or '-' , '--' , '-.' , ':'
marker
"." | point |
"," | pixel |
"o" | circle |
"v" | triangle_down |
"^" | triangle_up |
"<" | triangle_left |
">" | triangle_right |
plt.plot(df['일자'], df['컬럼명1']
,color='g' # 칼러
, linestyle='-' # 라인스타일
, marker='o')
그래프를 겹쳐서 그리려면 Show 전에 다른 그래프 2개를 쓴다.
# 첫번째 그래프
plt.plot(df['Date'], df['Ozone'], color='g', linestyle='--', marker='<')
# 두번째 그래프
plt.plot(df['Date'], df['Temp'], color='red', linestyle='-', marker='v')
범례, 그리드
범례를 추가하려면 .plot에서 label에 이름을 주면 된다.
그리드는 민 무늬에 격차 무늬를 추가하는 것이다.
plt.plot(df['일자'], df['컬럼명1'], label = '나타내고 싶은 이름')
plt.legend(loc='upper right') #loc은 위치
plt.grid()
plt.figsize()도 있다.
plt.figure(figsize=(12,8))
데이터 프레임으로 plot 그리기
df.plot(x = '일자', y = ['컬럼명 1','컬럼명 2'] #같은 그래프에 다른 선이 표시된다.
, title = '타이틀')
plt.show()
figsize나 xlabel 같은 경우도 전부 넣을 수 있다.
df.plot(x='일자',y=['컬럼명1','컬럼명2','컬럼명3'],title='타이틀1',xlabel='일자',figsize=(12,8))
plt.legend(loc='upper right')
plt.grid()
plt.show()
축 범위 조정, 그래프 크기 조정
plt.figure(figsize = (4, 3)) #크기 조정
plt.ylim(0, 100) #범위 조정
plt.xlim(0,10)
수평선, 수직선 및 텍스트 추가
plt.axhline(40, color = 'grey', linestyle = '--') #40 위치에 수평선
plt.axvline(10, color = 'r', linestyle = '-') #10 위치에 수직선
plt.text(5, 41, '40') #5,41에 40이라는 글자
plt.text(10.1, 20, '10') #10.1,20에 10이라는 글자
추가기능 2 : 여러 그래프 나눠서 그리기
subplot을 사용한다.
plt.subplot(행, 열, 인덱스)
어떤 그래프에 그릴지 먼저 설정해두고 사용한다.
plt.subplot(3,1,1) #행이 3개인 전체 도화지 중 첫번째
plt.subplot(3,1,2) #행이 3개인 전체 도화지 중 두번쨰