🚩 Visualization(시각화)

📈 데이터를 살펴보고 분석함에 따라 다양한 분석 가능성을 보여줌
🪡 유용한 시각화를 위한 데이터 전처리 작업 매우 중요
📋 시각화를 통한 레포트화

📌 파이썬 시각화 패키지 : Matplotlib, Seaborn, Folium(지도 위에 시각화), plotly


🚩 Matplotlib

: 파이썬의 대표적인 시각화 패키지
: 기본적인 형태의 다양한 시각화 함수 제공
: 한글폰트를 설정하여 한글을 출력할 수 있지만(한글폰트 설정하지 않으면 깨짐현상 발생) 영어를 권장
🧷import matplotlib.pyplot as plt
🧷%matplotlib inline : 브라우저 내부에 바로 그려지도록 설정
🧷%matplotlib notebook : 인터랙티브, 동적 그래프 사용 가능
🧷plt.rc('font', family='폰트명') : 한글 출력을 위한 폰트 설정
🧷plt.show() : 그래프 그려주는 함수로 위에서 시각화 코드 작성 후 맨 마지막에 작성 - 생략 가능


🌈line plot

📈시간 혹은 순서에 따라 데이터가 어떻게 변화하는지를 보기 위해 사용
📈데이터의 변화 양상 파악

🔸.plot()

🖍️하나의 캔버스에 여러개 그래프도 그릴 수 있음 → label 설정, 범례 표시
🖍️figure 지정 먼저 해주고 그려야 함

🧷plt.plot(x축 데이터, y축 데이터, '스타일지정')
🖐️스타일지정 - 아래 순서, 일부가 생략되면 default값
✅선 색상 - b(blue), g(green), r(red), c(cyan), m(magenta), y(yellow), k(black), w(white)
✅마커 - . , o v ^ < > h H +
✅선스타일 - -(solid line), --(dashed line), -.(dash-dot line), :(dotted line)
✅label = : 그래프 label 설정 → 범례 생성시 활용

🔸그래프 꾸미기(옵션 설정)

🌲그래프가 그려지는 캔버스 설정
🧷plt.figure(figsize = (n, m)) - 가로 n인치, 세로 m인치

🌲그래프 제목
🧷plt.title()
: 한글은 깨지기 때문에 한글 폰트 설정해줘야함
: $$ - 달러표시로 감싸면 수학식으로 표현 가능

🌲축 설명
🧷plt.xlabel(), plt.ylabel()

🌲범례 출력
🧷plt.legend()

🌲축 범위 설정
🧷plt.xlim([시작 범위, 마지막 범위]), plt.ylim([시작 범위, 마지막 범위])

🌲축 구간 내 필요한 구간만 설정
🧷plt.xticks([x축에 표시할 구간]), plt.yticks([y축에 표시할 구간])

🌲특정 구간 표시
: 화살표, 점선, 텍스트 등
🧷plt.annotate() : 서브 플랏이면 해당 그래프 그리는 plot() 밑에 작성 - ax[n].annotate()은 오류
🧷plt.vlines() : 특정 구간에 수직, 수평 선 그리기 - ax[n].vlines 가능
🧷plt.text() : 특정 구간에 텍스트 삽입 - ax[n].text() 가능

🔸.subplot()

🖍️그래프를 그리는 또 다른 방법, 여러개 그래프를 그리는 데 유용
🖍️figure 먼저 지정
🧷plt.subplot(n, m, x) - 캔버스를 n행 m열로 나누고 그 중 x번째 그래프
📈위 함수 바로 밑에 옵션을 작성하여 해당 그래프의 옵션 설정

🔸plt.tight_layout()

🖍️여러개 그래프 출력시 그래프 간의 여백을 줄여줌

🔸matplotlib 권장 다른 subplot() 방법

🧷fig, ax = plt.subplot(n, m, figsize = ( , )) - n행 m열의 subplot생성
🧷ax[0][0].plot() - n열 m행의 서브 플랏을 인덱스로 선택하여 그래프 그림, 1행 1열의 그래프라면 인덱스 지정 필요 없음

🌲옵션 설정법도 살짝 다름
🧷ax.set_title()
🧷ax.set_xlabel() : x축에 나타내고자 하는 값을 리스트로 전달(x축 값과 같은 형식으로 전달)
🧷fig.tight_layout()
🧷fig.savefig(파일명)
📈인덱싱으로 각 그래프마다 옵션 설정_


🌈 bar plot

📊카테고리컬 데이터의 정량 비교를 위해 사용
📊카테고리에 매칭되는 각 고유값의 개수를 count하여 y값으로 전달

🔸.bar()

🖌️분포 파악 가능
🧷ax.bar(카테코리컬한 x축 데이터, y축 데이터)
🧷ax.barh(카테코리컬한 x축 데이터, y축 데이터) - x, y축 위치 바뀜


🌈 히스토그램

📊연속형 데이터의 분포를 확인하고자 할 때 많이 사용하는 시각화 방법
📊전체 데이터 구간 중 특정 구간에 속한 데이터의 빈도수를 count하여 구간에 매칭
📊데이터 구간별 밀도 확인 가능

🔸.hist()

🧷ax.hist(연속형 데이터, bins= )
🖐️파라미터
✅bins = : 데이터 구간의 개수 → 출력될 그래프 개수


🌈 scatter plot

✒️2개 혹은 2개 이상의 변수간 관계를 확인하고자 할 때 마용 사용하는 시각화 방법
✒️x축과 y축에 각각의 변수 데이터를 위치시키고 포인트들이 자리한 평면상의 분포를 통해 상관관계를 파악

🔸.scatter()

🧷ax.scatter(x축 데이터, y축 데이터)


🚩 Seaborn

🎨matplotlib에 비해 시각적 심미성 뛰어남
📈matplotlib에서 지원하지 않는 다양한 형태의 시각화 도구 제공
📈matplotlib와 문법 약간 다름
🧷import seaborn as sns


🌈 bar plot

🔸.bar()

🧷ax = sns .bar(data = df, x = x축 데이터, y = y축 데이터)
🖐️파라미터
✅data = : 그래프에 쓰일 데이터 지정(데이터프레임)
✅x = : x축 데이터 지정, 앞서 지정한 data에서 가져옴(data의 컬럼명일 경우 '컬럼명' 작성)
✅y = : y축 데이터 지정, 앞서 지정한 data에서 가져옴(data의 컬럼명일 경우 '컬럼명' 작성)


🌈 count plot

🔸.countplot()

🖊️쉬운 방법으로 barplot 구현 가능
🧷ax = sns .countplot(data = df, x = x축 데이터, y = y축 데이터)
🖐️파라미터
✅data = : 그래프에 쓰일 데이터 지정(데이터프레임)
✅x =
✅y =
✅order : 정렬화된 데이터로 x축의 데이터가 출력될 순서 지정
✅hue = : 범례 지정(카테고리컬한 컬럼을 지정하여 색깔로 구분된 항목별 bar 볼 수 있음)


🌈 히스토그램

🔸.distplot() - 라이브러리 업데이트 전

🖊️구간별 밀도 함수 출력
🧷ax = sns .distplot(연속형 데이터)

🔸.histplot() - 라이브러리 업데이트 후

🖊️구간별 밀도 함수 출력
🧷ax = sns .histplot(data = df, x = '연속형 컬럼명')


🌈 scatter plot

🔸.scatterplot()

🖊️구간별 밀도 함수 출력
🧷ax = sns .scatterplot(data = df, x = 'x축으로 사용할 컬럼명', y = 'y축으로 사용할 컬럼명')
🖐️파라미터
✅hue = : 범례 지정(카테고리컬한 컬럼을 지정하여 색깔로 구분됨)


🌈 box plot

✏️두개의 변수를 전달하고 각 변수 간의 관계를 보고자 할 때 사용
✏️더불어 각 데이터의 분포 확인 가능
✏️각각의 box 하나 당 해당 데이터의 사분위수, 중앙값, 최대, 최소값 표기

🔸.boxrplot()

🧷ax = sns .boxplot(data = df, x = 'x축으로 사용할 컬럼명', y = 'y축으로 사용할 컬럼명', order = x축 데이터 순서 지정)


🌈 joint plot

✏️scatter plot + hist plotd의 결합 형태
✏️데이터를 입체적으로 보고자 할 때 사용

🔸.jointrplot()

🧷ax = sns .jointplot(data = df, x = 'x축으로 사용할 컬럼명', y = 'y축으로 사용할 컬럼명', order = x축 데이터 순서 지정)
🖐️파라미터
✅kind = "kde" | "hist" | "hex" | "reg" | "resid" - 중심이 될 그래프 종류


🌈 pair plot

✏️각 변수간 상관관계를 파악하는 scatter plot의 확장 버전
✏️데이터프레임의 모든 변수에 대한 상관관계를 그리드 형태의 scatter로 표현

🔸.pairrplot()

🧷sns.pairplot(df)


🌈 heatmap

✏️pairplot과 마찬가지로 각 변수간 상관관계를 모두 확인하고자 함
✏️pairplot과 다른점은 scatterplot 형태가 아닌 상관계수를 계산하여 열지도로 표현
✏️각 변수간 관계를 한눈에 보기 좋은 형태

🔸.heatmap()

🧷sns.heatmap(df.corr())
🧷df.corr() : 각 변수간 상관관계를 데이터프레임 형태로 출력해줌
🧷sns.heatmap(df.isna()) : 각 변수의 결측치 상황도 알 수 있음(결측치면 빈 색깔, 아니면 검은색)

profile
To be Data Analysist

0개의 댓글