본문 바로가기
자격증/AICE🎓

[AICE] Matplotlib 활용

by 무명오리 2023. 9. 15.

plt.figure() : 시각화 그림을 푯기할 영역 지정

plt.plot() : 시각화 차트 및 값 지정

plt.show() : 시각화 출력

 

plt.plot() : 선 그래프 - 시간따른 변화

plt.scatter(x, y) : 산점도 - 두 값 간의 상관관계

plt.hist() : 히스토그램 - 수치형 데이터 분포(빈도, 빈도밀도, 확률 등)

plt.hist(df["col명"], bins="빈도")

plt.boxplt(x) : 박스 그래프 - 수치적 자료(최소값, 제 1사분위값, 제 2사분위값, 제 3사분위값, 최대값)

df.boxplot(by="group화 할 값" , column="박스 그래프로 나타낼 값")

 

plt.bar(x, height) : 범주형 데이터의 수치 요약(일반적으로 가로, 세로, 누적, 그룹화된 막대 그래프 등 사용)

df[["col A", "col B"]].plot(kind="bar", stacked=True)
누적 막대 그래프

# %: 주피터 랩 명령어
%matplotlib inline
import matplotlib.pyplot as plt

 

한글 폰트 사용
# 설치된 폰트 확인 
import matplotlib.font_manager as fm
fm.findSystemFonts(fontpaths=None, fontext='ttf')

# 지원되는 한글 폰트를 기본 폰트로 설정하기
plt.rc('font', family='NanumGothicCoding')
plt.rc('axes', unicode_minus=False)

 

제목과 축 레이블 추가
plt.plot()

plt.xlabel("x축")
plt.ylabel("y축")
plt.title("제목")

plt.show()

 

범례 추가하기
plt.legend(["A", "B"])

 

plt.plot([1,2,3], [1,4,9])
plt.plot([2,3,4],[5,6,7])

위와 아래는 같은 plot

plt.plot([1,2,3],[1,4,9],[2,3,4],[5,6,7])

 

마커활용 (line plot에만 활용)

스타일 문자열은 색깔(color), 마커(marker), 선 종류(line style)의 순서로 지정

plt.plot(x,y1,'r--', x,y2, 'bs' ,x, y3, 'g^:')

 

 

한번에 여러 개의 차트 그리기

plt.figure() 여러 번 쓰기

plt.figure()
plt.plot(x,y1)
plt.figure()
plt.plot(x,y2)

plt.show()

subplot 쓰기 (행/열/순서 배치순서)

plt.figure(figsize=(20,12))

plt.subplot(211)
plt.subplot(223)
plt.subplot(224)

plt.show()


seaborn

matbplotlib 기반 색상 테마 및 통계용 차트 등의 기능이 추가된 시각화 패키지

 

%pip install seaborn

%matplotlib inline
import seaborn as sns
import matplotlib.pyplot as plt
  matplotlib seaborn
기능 기본적인 시각적 개체 생성 주로 통계 그래프 생성
표시 기본적 단순 시각적인 요소 가미
사용방법 numpy와 pandas만으로 다양한 시각화 가능 numpy&pandas에 matplotlib도 사용해야
복잡성 복잡하고 긴 구문 쉽고 간단한 구문
다중성 여러 개의 시각화를 한번에 메모리 부족문제로 다중 시각화 실패 가능성 있음
유연성 강력하고 유연해 사용자 기능 정의가 쉬움 덜 유연하여 사용자 기능 정의 어렵

 

sns.scatterplot(x,y) : 두 값의 관계 분포

plt.scatter(x,y)보다 시각화(점마다 테두리), x&y 축 자동으로 레이블 추가

sns.catplot(x,y,col or row) : 3개 이상의 카테고리 값에 의한 분포 변화

색상(hue), 열(col) 또는 행(row) 등을 동시에 사용

 

sns.lmplot(x,y) : 산점도에 회귀선 추가

산점도와 회귀선이 같아 line_kws={"color" : "red"} 같은 것으로 지정해줘야함

sns.Countplot(x) : 항목 별 개수 확인

※ 히스토그램 : 연속형 변수만 가능 but Count Plot은 범주형 변수에도 적용 가능

 

sns.boxplot(x,y) : 수치적 자료 표현 (최소값, 제1~3사분위값, 최대값)

 

sns.violinplot(x,y) : boxplot과 모양 비슷 but 밀집도 확인 가능

 

sns.jointplot(x,y) : 산점도 + countplot, 데이터 분포 및 상관관계

sns.jointplot(x="A", y="B", data=df, kind='hex')
밀도까지 파악가능

sns.heatmap(data) : 데이터 배열을 색상으로 나타냄, 두 개의 카테고리에 대한 값 변화, 각 feature간 상관관계

# '-' 부호 출력 경고를 제거 하기 위한 코드
plt.rc('axes', unicode_minus=False)
sns.heatmap(df.corr())

 

'자격증 > AICE🎓' 카테고리의 다른 글

[AICE] 머신러닝  (0) 2023.09.19
[AICE] 데이터 전처리  (0) 2023.09.17
[AICE] Pandas 이해 및 활용  (0) 2023.09.13
[AICE] AI의 이해  (0) 2023.09.07
[AICE] 공부 시작  (0) 2023.08.28