Matplotlib 테이블 함수

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 Matplotlib 의 table 함수를 사용하여 플롯 내에 표를 표시하는 방법을 배웁니다. 샘플 데이터셋을 사용하여 연도별로 다양한 자연 재해로 인해 발생한 손실을 시각화할 것입니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접속하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

필요한 라이브러리 임포트

프로젝트에 필요한 라이브러리를 임포트하는 것으로 시작합니다. Matplotlib 라이브러리를 사용하여 표를 생성합니다.

import matplotlib.pyplot as plt
import numpy as np

데이터셋 생성

다음으로, 연도별로 다양한 자연 재해로 인해 발생한 손실을 시각화하기 위한 샘플 데이터셋을 생성합니다. 데이터를 저장하기 위해 2 차원 리스트를 사용하고, 열 이름을 저장하기 위해 튜플을 사용합니다.

data = [[ 66386, 174296,  75131, 577908,  32015],
        [ 58230, 381139,  78045,  99308, 160454],
        [ 89135,  80552, 152558, 497981, 603535],
        [ 78415,  81858, 150656, 193263,  69638],
        [139361, 331509, 343164, 781380,  52269]]

columns = ('Freeze', 'Wind', 'Flood', 'Quake', 'Hail')

행 레이블 생성

손실이 기록된 연도를 나타내기 위해 데이터셋에 대한 행 레이블을 생성합니다. 리스트 컴프리헨션 (list comprehension) 을 사용하여 행 레이블을 생성합니다.

rows = ['%d year' % x for x in (100, 50, 20, 10, 5)]

색상 구성표 생성

plt.cm.BuPu 함수를 사용하여 테이블에 대한 색상 구성표를 생성합니다. 행에 대해 파스텔톤의 파란색과 보라색을 사용합니다.

colors = plt.cm.BuPu(np.linspace(0, 0.5, len(rows)))

수직 누적 막대 차트 생성

plt.bar 함수를 사용하여 연도별 다양한 자연 재해로 인한 손실을 나타내는 수직 누적 막대 차트 (vertical stacked bar chart) 를 생성합니다. for 루프를 사용하여 각 데이터 행을 반복하고 막대를 플롯합니다.

n_rows = len(data)

index = np.arange(len(columns)) + 0.3
bar_width = 0.4

y_offset = np.zeros(len(columns))

cell_text = []
for row in range(n_rows):
    plt.bar(index, data[row], bar_width, bottom=y_offset, color=colors[row])
    y_offset = y_offset + data[row]
    cell_text.append(['%1.1f' % (x / 1000.0) for x in y_offset])

색상 및 텍스트 레이블 반전

[::-1] 함수를 사용하여 테이블의 색상과 텍스트 레이블을 반전시켜 마지막 값을 맨 위에 표시합니다.

colors = colors[::-1]
cell_text.reverse()

플롯에 테이블 추가

plt.table 함수를 사용하여 플롯 하단에 테이블을 추가합니다. 셀 텍스트, 행 레이블, 행 색상 및 열 레이블을 함수의 매개변수로 전달합니다.

the_table = plt.table(cellText=cell_text,
                      rowLabels=rows,
                      rowColours=colors,
                      colLabels=columns,
                      loc='bottom')

플롯 레이아웃 조정

plt.subplots_adjust 함수를 사용하여 테이블을 위한 공간을 확보하도록 플롯의 레이아웃을 조정합니다.

plt.subplots_adjust(left=0.2, bottom=0.2)

축 레이블 및 제목 추가

plt.ylabel, plt.yticks, plt.xticks, 및 plt.title 함수를 사용하여 플롯에 축 레이블과 제목을 추가합니다.

values = np.arange(0, 2500, 500)
value_increment = 1000

plt.ylabel(f"Loss in ${value_increment}'s")
plt.yticks(values * value_increment, ['%d' % val for val in values])
plt.xticks([])
plt.title('Loss by Disaster')

플롯 표시

plt.show 함수를 사용하여 플롯을 표시합니다.

plt.show()

요약

이 랩에서는 Matplotlib 테이블 함수를 사용하여 플롯 내에 테이블을 표시하는 방법을 배웠습니다. 샘플 데이터 세트를 사용하여 지난 몇 년 동안 다양한 자연 재해로 인해 발생한 손실을 시각화했습니다. 다음 단계를 따랐습니다.

  1. 필요한 라이브러리 가져오기
  2. 데이터 세트 생성
  3. 행 레이블 생성
  4. 색상 구성표 생성
  5. 수직 누적 막대 차트 생성
  6. 색상 및 텍스트 레이블 반전
  7. 플롯에 테이블 추가
  8. 플롯 레이아웃 조정
  9. 축 레이블 및 제목 추가
  10. 플롯 표시.