Matplotlib のテーブル関数

PythonPythonBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Matplotlibのテーブル関数を使ってグラフ内にテーブルを表示する方法を学びます。異なる自然災害による損失を年間で可視化するために、サンプルデータセットを使います。

VMのヒント

VMの起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebookを使って練習します。

時々、Jupyter Notebookが読み込み終わるまで数秒待つ必要があります。Jupyter Notebookの制限により、操作の検証は自動化できません。

学習中に問題がある場合は、Labbyにお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

まず、このプロジェクトに必要なライブラリをインポートします。Matplotlibライブラリを使ってテーブルを作成します。

import matplotlib.pyplot as plt
import numpy as np

データセットを作成する

次に、異なる自然災害による損失を年間で可視化するためのサンプルデータセットを作成します。データを格納するために二次元リストと、列名を格納するためにタプルを使います。

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')

行ラベルを作成する

損失が記録された年数を表すために、データセットの行ラベルを作成します。行ラベルを作成するためにリスト内包表記を使います。

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関数を使って縦積み棒グラフを作成します。データの各行を反復処理するために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.ylabelplt.yticksplt.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. グラフを表示