複数のグラフを1つに
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 28/60。
フードトラックは、来客数と待ち時間を記録しています。単位が異なるため、1つの図に2つのグラフを並べて表示すると見やすくなります。
忙しい日、長い待ち時間。一目で状況がわかります。plt.subplots(1, 2) は1行に2つのグラフを作成し、左側がaxs[0]、右側がaxs[1]です。
days = ["Mon", "Tue", "Wed", "Thu", "Fri"]
customers = [60, 85, 70, 120, 150]
wait = [4, 6, 5, 9, 12]
fig, axs = plt.subplots(1, 2)
axs[0].bar(days, customers)
axs[0].set_title("Customers")
axs[1].plot(days, wait)
axs[1].set_title("Wait (min)")
plt.show()それぞれが、これまでに学んだメソッドを備えた完全なグラフです。形状のように、行を先に指定します。plt.subplots(2, 1)は行を縦に並べます。
チャレンジ
中級あるハイカーが8回のハイキングを記録しました。歩いた距離はkm、かかった時間はhoursです。スターターコードのlabel(ax, title, xlabel, ylabel)は、1つのグラフに名前を付けます。2つのグラフを横に並べて描きましょう。
- 左:横軸に
hikesのハイキング番号、縦軸にkmをとった折れ線グラフ。 - 右:ハイキング1回につき点を1つ描き、横軸に距離、縦軸に時間をとります。
- 以下のテキストを使い、それぞれのグラフに
labelを1回呼び出して名前を付けます。
別のハイカーの記録から作成した、こちらのグラフのようになるはずです。
テキストは、左がDistance per Hike、Hike、Distance (km)、右がTime vs Distance、Distance (km)、Time (h)です。プログラムは何も出力しません。
自分で試してみよう
import numpy as np
import matplotlib.pyplot as plt
hikes = np.arange(1, 9)
km = np.array([8.0, 12.5, 6.0, 15.0, 10.0, 18.5, 9.5, 14.0])
hours = np.array([2.5, 4.0, 2.0, 5.0, 3.5, 6.5, 3.0, 4.5])
# 1つのグラフにタイトルと軸ラベルを設定する(何も返さない)
def label(ax, title, xlabel, ylabel):
ax.set_title(title)
ax.set_xlabel(xlabel)
ax.set_ylabel(ylabel)
# 以下にコードを書いてください
# 以下の行は変更しないでください
plt.show()
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ