はじめに
この実験では、Matplotlib を使ってグラフのライフサイクルを探ります。生データから始まり、カスタマイズされたビジュアライゼーションを保存することで終了します。グラフを作成し、そのスタイルを制御し、外観をカスタマイズし、複数のビジュアライゼーションを組み合わせ、グラフをディスクに保存する方法を学びます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なモジュールをインポートする
まず、必要なモジュールをインポートする必要があります。Matplotlib と NumPy です。
import matplotlib.pyplot as plt
import numpy as np
データを準備する
異なる会社の販売情報を含むサンプルデータセットを使用します。以下はデータの例です。
data = {'Barton LLC': 109438.50,
'Frami, Hills and Schmidt': 103569.59,
'Fritsch, Russel and Anderson': 112214.71,
'Jerde-Hilpert': 112591.43,
'Keeling LLC': 100934.30,
'Koepp Ltd': 103660.54,
'Kulas Inc': 137351.96,
'Trantow-Barrows': 123381.38,
'White-Trantow': 135841.99,
'Will LLC': 104437.60}
group_data = list(data.values())
group_names = list(data.keys())
group_mean = np.mean(group_data)
グラフを作成する
販売データを表すために棒グラフのビジュアライゼーションを使用します。以下の手順に従ってください。
plt.subplots()を使用して、グラフと軸オブジェクトを作成します。
fig, ax = plt.subplots()
- 軸オブジェクトの
barh()メソッドを使用してデータをプロットします。
ax.barh(group_names, group_data)
グラフのスタイルをカスタマイズする
グラフのスタイルを変更して、視覚的に魅力的にすることができます。以下の手順に従ってください。
print(plt.style.available)を使用して、利用可能なスタイルのリストを表示します。
print(plt.style.available)
- スタイルを選択して、
plt.style.use(style_name)を使用して適用します。
plt.style.use('fivethirtyeight')
- もう一度グラフを表示しましょう。
fig, ax = plt.subplots()
ax.barh(group_names, group_data)
グラフの外観をカスタマイズする
グラフの外観をさらにカスタマイズすることができます。以下の手順に従ってください。
- x 軸のラベルを回転させて、読みやすくします。
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
- x 軸と y 軸の範囲、ラベル、タイトルを設定します。
ax.set(xlim=[-10000, 140000],
xlabel='Total Revenue',
ylabel='Company',
title='Company Revenue')
- もう一度グラフを表示します。
fig, ax = plt.subplots()
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
title='Company Revenue')
複数のビジュアライゼーションを組み合わせる
ビジュアライゼーションに追加のグラフ要素を追加することができます。以下の手順に従ってください。
- 販売データの平均を表す垂直線を追加します。
ax.axvline(group_mean, ls='--', color='r')
- グラフに新しい会社を注釈付きで追加します。
for group in [3, 5, 8]:
ax.text(145000, group, "New Company", fontsize=10, verticalalignment="center")
- グラフのタイトルの位置を調整します。
ax.title.set(y=1.05)
- 完全なコードを以下に示します。
fig, ax = plt.subplots(figsize=(8, 8))
ax.barh(group_names, group_data)
labels = ax.get_xticklabels()
plt.setp(labels, rotation=45, horizontalalignment='right')
## Add a vertical line, here we set the style in the function call
ax.axvline(group_mean, ls='--', color='r')
## Annotate new companies
for group in [3, 5, 8]:
ax.text(145000, group, "New Company", fontsize=10,
verticalalignment="center")
## Now we move our title up since it's getting a little cramped
ax.title.set(y=1.05)
ax.set(xlim=[-10000, 140000], xlabel='Total Revenue', ylabel='Company',
title='Company Revenue')
plt.show()
グラフを保存する
最後に、グラフをディスクに保存することができます。以下の手順に従ってください。
print(fig.canvas.get_supported_filetypes())を使用して、サポートされているファイル形式を表示します。
print(fig.canvas.get_supported_filetypes())
fig.savefig(file_path, transparent=False, dpi=80, bbox_inches="tight")を使用して、画像ファイルとしてグラフを保存します。この行のコメントを解除してグラフを保存します。
fig.savefig('sales.png', transparent=False, dpi=80, bbox_inches="tight")
左側のサイドバーにあるファイルエクスプローラーを使用して、保存した画像ファイルを開くことができます。
まとめ
この実験では、Matplotlib を使ってグラフのライフサイクルについて学びました。まず、グラフを作成し、そのスタイルを制御し、外観をカスタマイズし、複数のビジュアライゼーションを組み合わせ、最後にグラフをディスクに保存するまでの流れを学びました。Matplotlib は、視覚的に魅力的で情報が豊富なグラフを作成するための幅広いカスタマイズオプションを提供しています。