Chapter 05. 데이터 시각화하기

강민석·2023년 2월 12일
0

데이터 분석

목록 보기
5/7

실습 코드 : https://colab.research.google.com/drive/17tzODyMBLNE3KOGK7aUwRwqhi57ArZJb?usp=sharing

맷플롯립 기본요소

Figure 객체

모든 그래프 구성요소를 가지고 있는 최상위 객체. figure()를 통해 명시적으로 생성하면 그래프의 다양한 옵션을 조정할 수 있다.

figsize = 그래프의 크기 조정 가능. figsize=(9,6)

  • 단위 : Inch(72DPI), 기본 크기 : 6,4
  • 픽셀 단위 크기 지정 : plt.figure(figsize=(900/72, 600/72)
  • 보다 정확한 크기 지정을 위한 tight 레이아웃 해제 :
    %config InlineBackend.print_figure_kwargs = {'bbox_inches': None}

dpi = 인치당 픽셀 수 조정 dpi=144

rcParams 객체

맷플롯립 그래프의 기본값을 관리하는 객체.

DPI 기본값 변경

plt.rcParams['figure.dpi'] = 100

산점도 마커 모양 변경

plt.rcParams['scatter.marker'] = '*'

marker : 산점도 마커 모양의 1회성 변경을 위한 매개변수
plt.scatter(..., marker='+')

여러 개의 서브플롯 출력하기

subplots()

서브플롯을 정의하기 위한 함수로 원하는 서브플롯 갯수를 매개변수에 넣어준다.

subplots(행 개수, 열 개수)

fig, axs = plt.subplots(2)

axs[0].scatter(ns_book7.도서권수, ns_book7.대출건수, alpha=0.1)
axs[1].hist(ns_book7.대출건수, bins=100)
axs[1].set_yscale('log')

fig.show()

figsize = 크기 조절 가능 fig, axs = plt.subplots(2, figsize=(6,8))

set_title() = 제목 설정 가능. axs[0].set_title('scatter plot')

set_x(y)label = 축 이름 설정 가능.
axs[0].set_xlabel('number of books')
axs[0].set_ylabel('borrow count')

선 그래프와 막대 그래프 그리기

pandas 데이터 가공(도서 대출 데이터) - 연도별 도서 개수 구하기

value_counts()

데이터 프레임의 한 열의 고유 값 등장 횟수 계산

count_by_year = ns_book7['발행년도'].value_counts()

sort_index()

인덱스 순으로 정렬

count_by_year = ns_book7['발행년도'].value_counts().sort_index()

선 그래프 그리기 plot(x축 값, y축 값)

선 그래프를 그리는 함수

plt.plot(count_by_year.index, count_by_year.values)

linestyle = 선 모양 변경 가능, defalut : '-'

  • 실선 : '-'
  • 점선 : ':'
  • 쇄선 : '-.'
  • 파선 : '--'
  • marker 매개변수로 점 모양 지정 가능

color = 색상 지정 가능. 16진 컬러 코드나 색상명 입력 가능
color='red' / color='#ff0000'

그래프 모양 표현 을 축약 가능 plt.plot(count_by_year, '.:r')

x(y)ticks()

눈금을 정의할 수 있다.

plt.xticks(range(1947, 2030, 10)

annotate()

그래프의 점에 문자열을 나타냄.

슬라이스를 통해 5개 씩 건너뛰면서 표시하기
for idx, val in count_by_year[::5].items():
plt.annotate(val, (idx, val))

xytext = 문자열의 위치 이동.
plt.annotate(val, (idx, val), xytext=(idx+1, val+10))

  • 이동 단위 지정을 위해 textcoords를 함께 사용 가능.
    plt.annotate(val, (idx, val), xytext=(0, 2), textcoords='offset points')

막대 그래프 그리기 bar(x축 값, y 축 값)

막대 그래프를 그리는 함수. plot과 매우 유사하다.

plt.bar(count_by_subject.index, count_by_subject.values)

width = 막대의 두께 조절, default = 0.8,
color = 색상 조정.
plt.bar(count_by_subject.index, count_by_subject.values, width=0.7, color='blue')

annotate의 매개변수들

  • ha : 텍스트 정렬 (left, right , center)
  • fontsize : 텍스트 크기 설정
  • color : 텍스트 색상 조정
    plt.annotate(val, (idx, val), xytext=(0, 2), textcoords='offset points', fontsize=8, ha='center', color='green')

가로 막대 그래프 그리기 barh()

bar와 xy가 반대이므로

  • 두께(width->height)
  • xy축 이름 변경
  • annotate 시 (idx, val) -> (val, idx)
  • ha -> va, (baseline, center, top, bottom)

이미지 출력하고 저장하기

imread('파일')

이미지 파일을 읽어오기.

img = plt.imread('jupiter.png')

shape

이미지의 높이, 너비, 채널 출력

img.shape

imshow()

이미지 출력하기

plt.imshow(img)
plt.show

imsave()

이미지 저장하기

plt.imsave('jupiter.jpg, arr_img)

savefig()

그래프를 이미지로 저장하기

plt.savefig('books_by_subject.png')

Image.open (PIL.Image 모듈)

이미지 불러오기

pil_img = Image.open('books_by_subject.png')

profile
새내기 개발자입니다.

0개의 댓글