데이터 시각화 연습문제 풀이
문제1 - 선 그래프
x축의 간격을 10일로 설정하여 날짜별 종가와 시가 변화를 구현
- 하나의 그래프 설정에 plot 그래프를 2개 삽입
- 날짜를 10일 간격이라고 조건이 있기 때문에 x 좌표를 위한 list를 생성
- 다만 10개 단위로 x에 표현하는 것은 xtick에서 구현
- 그렇지 않으면 처음부터 10 단위로 좌표를 축력해 값이 변경됨
- 날짜 형식 정제
- 그래프 확인 후 가독성이 떨어진다면 임의로 날짜 간격 조절
문제2 - 막대 그래프
복지시설이 많은 상위 10개 지역에 대한 지역별 복지 시설 수를 시각화
- 복지시설 수의 내림차순 정렬 후 상위 10개를 추출
문제3 - 다중 막대 그래프
각 도시별로 2015년도의 2010년도의 인구수를 비교하는 자료를 시각화
단, 인구수의 표현 범위는 200만~1000만
- 연도별 데이터 추출
- numpy로 데이터 처리
- 시각화 설정 후 그래프 생성
- 날짜와 같은 숫자 존재 시 dtypes로 확인 후 실시
문제4 - 다중 막대 그래프, pie 그래프
종사자 규모에 따른 업체 수를 확인할 수 있는 세로 막대 그래프를 구현하시오. 이 때 각 데이터의 범주는 년도로 설정
종사자 규모별 업체 수의 비율을 시각화 하시오. 2015년도와 2016년도에 대한 시각화 결과물이 각각(총 2개) 구현
- index별 데이터 추출
- numpy로 데이터 처리
- 시각화 설정 후 그래프 생성
- pie 그래프로 종사자 규모별 업체 수의 비율을 시각화
문제5 - 다중 막대 그래프
교통사고 발생건수와 부상자수의 상관관계를 알아보고자 한다.
적합한 시각화 결과물을 제시
- df를 사용해 각 변수(columns)의 데이터를 추출
추가 : numpy를 사용한 추세선 추가
기울기, 전편, 1차 식을 사용한 부상자수 예측과 ply1d를 사용한 고도화 예측
이후 선 그래프를 더해서 추사선을 생성(회귀분석)
진도
선, 막대 그래프는 별도의 설정이 없으면 변수(컬럼) 지정 없이 모든 변수 값을 출력
03-데이터프레임_시각화.ipynb 학습 및 실습
데이터프레임(DataFrame) 객체로 그래프 생성 시 plt.figure()를 실행해 필요가 없음
기본적으로 데이터프레임의 컬럼 이름이 label이 되지만 바꾸고 싶은 경우 plot() 메서드에 label 파라미터를 성정해 변경 가능
파이 그래프는 컬럼단위로 진행
04-서브플롯.ipynb
서브플롯 기본 형태
- 서브플롯 생성
fig, ax = plt.subplots(a,b)
- 전체 제목 생성
fig.suptitle("", fontsize, color)
- 각 그래프의 가로(wspace), 세로(hspace) 간격 지정
fig.subplots_adjust(wspace=, hspace=)
- 그래프 시각화 및 종료
plt.show()
plt.close()
서브플롯에 그래프 그리기
- 영역 생성(2행 2열)
fig, ax = plt.subplots(2,2, figsize = (,))
- 전체 제목
fig.suptitle("", fontsize = , color = '')
- 데이터프레임을 기반으로 각 영역에 그래프를 종류별로 표시
-- df.plot(ax = ax[0][0]) #ax[0][0]은 선 그래프
-- df.plot.bar(ax = ax[0][1]) #ax[0][1]은 막대 그래프
-- df[""].plot.pie(ax = ax[1][0]) #ax[1][0]은 파이 그래프
""정보를 담은 pie 그래프
-- df.plot.scatter(x='', y='', ax = ax[1][1]) #ax[1][1]은 산점도 그래프
서브플롯 영역에 옵션 지정하기
subplot을 사용해 다양한 옵션을 지정할 수 있다(명령어가 변경됨)
두 개의 y축을 갖는 그래프 생성
seaborn - 확장팩
index_col을 지정하지 않은 경우 x='해당 컬럼이름"을 주어지면 index 처럼 사용할 수 있다
산점도 그래프에서 regplot을 사용해 간단히 추세선 추출 가능
단, fit_reg=False 설정 시 추세선 제외