棒グラフ
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 26/60。
この章では、データを要約します。章の終わりまでに、次のような2つのグラフを使ったレポートを作成します。
棒グラフから始めましょう。フレーバーに順序はないため、1つから次への線には何の意味もありません。ax.bar(categories, values)はカテゴリごとに1本の棒を描画します。
flavors = ["Chocolate", "Vanilla", "Mint", "Mango"]
sold = [42, 27, 15, 21]
fig, ax = plt.subplots()
ax.bar(flavors, sold)
ax.set_title("Scoops Sold")
ax.set_ylabel("Scoops")
plt.show()棒グラフは0から始まるため、高さを直接比較できます。チョコレートの42はマンゴーの21の2倍です。モデルを学習させる前に、各回答がどれくらいの頻度で現れるかを示す棒グラフを見ると、どれか一つが突出しているかどうかがわかります。
チャレンジ
中級48人の生徒が、どのように通学しているかを回答しました。countsには、コードごとの回答数が格納されています:1は徒歩、2は自転車、3はバス、4は車です。学校同士を比較するため、割合をグラフにしましょう:
- カウントをパーセントに変換し、小数第1位に丸めます(48人中12人は
25.0です)。 - 棒グラフで表します:
Walk、Bike、Bus、Car。 - 縦軸に
Students (%)とラベルを付けます。
小規模な学校のデータを使った場合、次のようなグラフになります:
プログラムは何も出力しません。Coddyが出力欄で棒グラフの内容を説明します。
自分で試してみよう
import numpy as np
import matplotlib.pyplot as plt
# 1 = 徒歩、2 = 自転車、3 = バス、4 = 車
answers = np.array([1, 3, 1, 4, 3, 3, 4, 3, 4, 4, 3, 4, 4, 4, 3, 3,
2, 2, 2, 1, 1, 3, 1, 1, 1, 2, 3, 3, 1, 3, 2, 1,
3, 4, 3, 3, 1, 1, 1, 2, 3, 1, 3, 4, 4, 3, 2, 4])
# 配列を返す:1 から 4 までの各コードに等しい値の個数
def count_codes(values):
counts = []
for code in range(1, 5):
counts.append((values == code).sum())
return np.array(counts)
counts = count_codes(answers)
fig, ax = plt.subplots()
ax.set_title("Getting to School")
# 以下にコードを書いてください
# 下の行は変更しないでください
plt.show()
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ