Matplotlib を使ったグループ化された棒グラフ

PythonPythonBeginner
今すぐ練習

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

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

はじめに

この実験では、Python の Matplotlib を使ってグループ化された棒グラフを作成し、棒にラベルを付けて注釈を付ける方法を学びます。パーマーペンギンデータセットのデータを使って、種によるペンギンの属性を表示するチャートを作成します。

VM のヒント

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

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

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

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

データを扱い、チャートを作成するために必要なライブラリをインポートして始めましょう。

import matplotlib.pyplot as plt
import numpy as np

データを準備する

次に、チャート用のデータを準備します。ペンギンの種類が 3 つで、属性も 3 つあるので、種ごとの各属性の平均値を持つ辞書を作成します。

species = ("Adelie", "Chinstrap", "Gentoo")
penguin_means = {
    'Bill Depth': (18.35, 18.43, 14.98),
    'Bill Length': (38.79, 48.83, 47.50),
    'Flipper Length': (189.95, 195.82, 217.19),
}

グループ化された棒グラフを作成する

これで、Matplotlib のbar関数を使ってチャートを作成できます。属性をループして、それぞれに対して 1 セットの棒を作成するループを作成します。また、棒の幅と各セットの棒の位置を調整します。

x = np.arange(len(species))
width = 0.25
multiplier = 0

fig, ax = plt.subplots()

for attribute, measurement in penguin_means.items():
    offset = width * multiplier
    rects = ax.bar(x + offset, measurement, width, label=attribute)
    multiplier += 1

棒にラベルを追加する

Matplotlib のbar_label関数を使って、棒にラベルを追加できます。これにより、各棒の上にその値が表示されます。

ax.bar_label(rects, padding=3)

チャートをカスタマイズする

ラベル、タイトルを追加し、x 軸の目盛りラベルと凡例を調整することで、チャートをカスタマイズできます。また、y 軸の制限を設定して、すべてのデータが表示されるようにします。

ax.set_ylabel('Length (mm)')
ax.set_title('Penguin attributes by species')
ax.set_xticks(x + width, species)
ax.legend(loc='upper left', ncols=3)
ax.set_ylim(0, 250)

チャートを表示する

最後に、Matplotlib のshow関数を使ってチャートを表示できます。

plt.show()

まとめ

この実験では、Python の Matplotlib を使ってグループ化された棒グラフを作成する方法と、棒にラベルを付ける方法を学びました。パルマーペンギンのデータセットからのデータを使って、種ごとのペンギンの属性を表示するチャートを作成しました。また、ラベル、タイトルを追加し、x 軸の目盛りラベルと凡例を調整することでチャートをカスタマイズする方法も学びました。