列のヒストグラム
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 50/60。
クリニックでの夕方の待ち時間は、朝より長いでしょうか?1つの座標軸に重ねた2つのヒストグラムを見れば、一目でわかります。
列はそのままax.histに渡します。各グループの行を分けてから、同じ座標軸上に両方を描画します。
# waits には shift 列と minutes 列がある
morning = waits[waits["shift"] == "morning"]
evening = waits[waits["shift"] == "evening"]
fig, ax = plt.subplots()
ax.hist(morning["minutes"], bins=4, alpha=0.5, label="morning")
ax.hist(evening["minutes"], bins=4, alpha=0.5, label="evening")
ax.set_title("Clinic Waits")
ax.set_xlabel("Minutes")
ax.legend()
plt.show()alpha=0.5にすると棒が半透明になり(0は透明、1は不透明)、重なりが見えるままになります。label=は凡例に表示するそれぞれの名前を指定します。
グループが異なる範囲に広がっている場合、その列はモデルがそれらを区別するのに役立ちます。
チャレンジ
中級あるオフィスで、通勤にかかる時間をスタッフに尋ねました。commute.csvにはmode(bikeまたはbus)とminutesが含まれています。どちらの所要時間のばらつきが大きいでしょうか?スターターコードでは各グループをbikeとbusに分け、グラフの枠組みを用意しています。
各グループのminutesのヒストグラムを、bins=5、alpha=0.5、ラベルbikeまたはbusで描いてください。
昨年の調査結果を使った次のグラフのようになるはずです。
棒がより多くの分数にまたがっているグループのほうが、ばらつきが大きいグループです。Coddyは出力にあなたのグラフの説明を表示します。
自分で試してみよう
import pandas as pd
import matplotlib.pyplot as plt
trips = pd.read_csv("commute.csv")
bike = trips[trips["mode"] == "bike"]
bus = trips[trips["mode"] == "bus"]
fig, ax = plt.subplots()
ax.set_title("Commute Times")
ax.set_xlabel("Minutes")
# 以下にコードを書いてください
# 以下の行は変更しないでください
ax.legend()
plt.show()
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ