最近趣味で統計学を勉強しているのですが、なにか形に残るものを作ってみようと思いました。
そのほうが勉強になると思いますし息抜きにもなるので。
ちなみに題材に関しては著作権を考慮してかなりぼかしていますが、
52人という数字でピンとくる方がいらっしゃるかと思われます。
データの読み込みとヒストグラム作成
インターネットで適当に情報を集めたら、52人の体重が記述されたCSVファイルを雑に作成します。
作成したファイルをPandasで読み込んでいきます。
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# CSV読み込み
csv = pd.read_csv('任意のCSVファイルが置かれているパスを入力')
おっとCSV読み込みの前にimportですね。
あとJupyter Notebookで画像を表示する際に「%matplotlib inline」と表記する必要があるそうな。
# 体重データを格納
WeightData = csv.Weight.values.tolist()
データを格納したらヒストグラムを作るための下ごしらえを行います。
最小値と最大値を求めて、階級を決定します。
# 最小値と最大値を算出
print("最小値",np.min(WeightData))
print("最大値",np.max(WeightData))
最小値 35.0
最大値 51.0
最小値と最大値を確認することが出来ました。
あとは適切な数値を入れていくだけです。
fig, ax = plt.subplots()
# 5個の階級でヒストグラムを作成します。binsの最小値と最大値をrangeで指定します。
# 戻り値について n => 各階級における度数、bins => 階級のリスト
n, bins, patches = ax.hist(WeightData, bins=5, range=(31, 55))
# グラフのタイトル
ax.set_title('Girls Weight')
# X軸のタイトル
ax.set_xlabel('Weight Group')
# Y軸のタイトル
ax.set_ylabel('Frequency')
# X軸のラベル
label = [
'31 - 35',
'36 - 40',
'41 - 45',
'46 - 50',
'51 - 55'
]
# ラベルを打つX軸の場所。階級値をセットする。
ax.set_xticks([33, 38, 43, 48, 53])
# X軸にラベルをセット、90度回転させる
ax.set_xticklabels(label, rotation = 90)
いよいよ描画です。
# 描画
plt.show()
ね、簡単でしょう?
といった具合でヒストグラムを作成することが出来ました。
ヒストグラムからわかること
こうして表にするとアイドルの平均体重がだいたい43kgぐらいであることが分かります。
現実の女子が理想とする体系が40kg程度(らしい)ということを考えると、
アイドルの設定体重としては妥当なところなのでしょうか。
ちなみに私の担当の体重は結構重めということが分かりました。
いいんです。
女性はちょっとむちむちしていた方がかわいいですからね(笑顔)