AI와 데이터 기초1 - 4일차
데이터 시각화
데이터 시각화의 정의
- 사람의 시각 및 이해도
- 사람은 긴 글보다 요약된 내용을 선호
- 글자보다 임팩트 있는 시각 요소에 집중
- 데이터 원자료나 통계표는 수많은 숫자와 문자로 구성됨으로 내용 파악이 어려움
- 데이터 시각화
- 일반적인 데이터를 차트, 그래프, 지도와 같이 이해하기 쉬운 시각적 요소로 표현하는 것
- 많은 양의 데이터를 빠르게 분석
데이터를 시각화하는 이유
- 많은 양의 데이터를 빠르게 분석할 수 있음
- 시각 요소르 통해 데이터를 명확히 전달할 수 있음
- 추세와 경향성이 쉽게 드러나 이해가 쉬움
- 새로운 패턴을 발견하기도 함
- 항목간의 관계를 발견할 수 있음
- 데이터에 숨어 있는 트렌드를 찾아낼 수 있음
상황에 맞는 차트 선택 방법
막대 차트 (Bar Chart)
- 데이터의 트랜드를 파악할 때 유용
- 데이터의 순위를 비교할 때 유용
- 참고사항 :
- 비교 데이터가 많다면 수평 막대가 유용
- 순위를 강조하고 싶다면 정렬(오름차순/내림차순)하여 표현
- 데이터를 구분하고자 한다면 데이터별로 다른 색상을 지정
분산형 차트 (Scatter Chart)
- 직교 좌표계를 이용하여 좌표사의 점들을 표시
- 두 개의 데이터(변수)간의 관계를 나타낼 때 유용
- 분포 양상을 비교할 때 유용
- 참고사항 :
- 데이터(변수) 간의 관계를 명확하게 표현하고 싶다면 추세선을 사용
- 변수의 관계가 2개 이상일때는 색상으로 표현
선 차트 (Plot Chart)
- 데이터 트렌드의 변화를 비교할 때 유용
- 시간의 흐름에 따른 데이터 변화를 확인하고자 할 때 유용
- 참고사항 :
- 선의 개수는 한눈에 파악할 수 있을 정도로만
- 데이터 구분을 위해 색상 활용
- 데이터값이 과장되지 않도록 세로축의 눈금 및 범위는 적절히
파이 차트 (Pie Chart)
- 데이터 간의 비율을 파악할 때 활용
- 데이터 간의 상대적 크기를 비교할 때 활용
- 참고사항 :
- 핵심 전달을 위해 조각 개수는 한눈에 보일 정도로만
- 명확한 크기를 위해 조각을 큰 순서대로 배열하는 것이 효율적임
- 강조하고자 하는 핵심 정보만 표시
워드클라우드(WorldCloud)
- 서술형 데이터를 분석할 때 활용
- 빈도, 중요도가 높은 텍스트를 강조할 때 유용
- 참고사항 :
- 빈도가 낮은 단어들은 제외하여 표현
- 의미없는 단어는 제거하여 표현
지도 차트
- 데이터를 지리적으로 비교할 때
- 시간별 지리적 데이터 변화를 확인할 때
- 참고사항 :
데이터 시각화를 위한 대표 라이브러리(matplotlib)
- matplotlib(mat + plot + lib)
- 데이터를 다양한 형태의 차트로 그려주는 데이터 시각화 패키지
- 설치 : pip install matplotlib
- 라이브러리 선언
- import matplotlib.pyplot as plt
데이터 시각화를 위한 대표 라이브러리(seaborn)
- seaborn 라이브러리
- matplotlib 위에서 동작되는 시각화 라이브러리
- 22종의 데이터 셋 제공
- matplotlib에 비해 손쉽게 그래프를 그리고 스타일을 설정할 수 있음
- seaborn 라이브러리 선언
- import matplotlib.pyplot as plt
- imporst seaborn as sns
데이터 시각화 (plot 차트 중심)
시각적으로 분석하며 질문에 답하기
- import matplotlib.pyplot as plt
- 한글 지원을 위한 코드 실행 필요 (Colab의 경우)
- !pip install koreanize-matplotlib
- import koreanize_matplotlib
plot 차트 생성하기
- plt.plot(데이터, 속성들)
- 데이터 : x축과 y축에 표현할 데이터들
- plot차트의 경우 y축만으로도 데이터 표현 가능
- label='범례이름' : 선이 여러 개인 경우 각 선의 이름을 차트 내에 표시
- marker='마커종류': 선 위에 표현할 마커 모양 설정
- markersize=정수 : 마커의 크기 변경
- linestyle='선종류': 선의 모양 설정
- linewidth=정수 : 순 두께 설정
- color='색상': 선 색상 설정
- color, marker, linestyle 순으로 약식 표현 가능
차트 꾸며보기
- 차트 추가 함수들
- plt.show() : 데이터를 이용한 차트 결과를 출력
- plt.legend() : 지정한 범례(label)를 차트 내에 표시
- plt.title("차트제목") : 지정한 차트 제목을 차트 중앙 상단에 표시
- plt.xlabel("x축제목"), plt.ylabel("y축제목") : x축과 y축의 제목을 지정한 문자열로 설정
- plt.grid() : 차트내에 눈금선 표시
- plt.xlim(시작값, 마지막값), plt.ylim(시작값, 마지막값) : x, y축 눈금의 범위 지정
- plt.xticks(눈금값, 레이블), plt.yticks(눈금값, 레이블) : x, y축에 표시할 눈금 지정
- 눈금값 : x, y축 눈금에 표시할 값
- 레이블 : 눈금값으로 표시할 레이블로 튜플이나 리스트로 설정
bar 차트 생성하기
- plt.bar(데이터, 속성들) : 세로 막대차트 생성
- 데이터 : x축과 y축에 표현할 데이터들
- width=실수 : 막대 두께 설정
- plt.barh(데이터, 속성들) : 가로 막대차트 생서
- plt.bar()에 'h'만 추가
- 속성들은 유사. 단, width->height, plt.xticks()->plt.yticks()
- height=실수 : 막대 높이 설정
- bar 차트와 barh 차트의 공통 속성들
- label='범례이름' : 막대 차트가 여러 개인 경우 각 막대차트의 이름을 차트 내에 표시
- color='색상' : 막대차트의 색상 설정
- alpha=실수 : 막대의 투명도
pie 차트 생성하기
- plt.pie(데이터 속성들)
- 데이터 : 데이터의 구성비를 확인하기 위한 데이터
- labels='문자열' : 각 영역의 값을 나타내는 레이블 문자열
- autopct='양식문자' : 비율을 나타낼 숫자 형식
- colors=리스트 : 각 영역의 색상
- explode=리스트 : 부채꼴이 중심에서 벗어나는 정도
- plt.scatter(데이터, 속성들)
- 데이터 : 분포를 확인하기 위한 열이름
- c='색상' : 점들의 색상
- s='크기' : 점들의 크기
Seaborn 라이브러리의 relplot 차트
- sns.relplot(data=표이름, x='x축열이름', y='y축열이름', 속성들)
- data = 표이름 : 차트를 생성할 데이터프레임 선택
- x='x축열이름' : 수치형 데이터를 갖는 x축 열이름
- y='y축열이름' : 수치형 데이터를 갖는 y축 열이름
- hue='열이름' : 종류를 구분하기 위한 데이터의 열이름