#56

度数分布表とASCIIヒストグラム

データを階級に区切って度数を数え、#の棒で分布を可視化します。

解説

たくさんの数値はそのままでは傾向が見えません。そこで値をいくつかの区間(階級)に分け、それぞれに入るデータの個数(度数)を数えたものが度数分布表です。 この度数を # の本数で表すと、簡単なヒストグラム(棒グラフ)になり、データがどのあたりに集中しているかが一目で分かります。 各階級について low <= s <= high を満たす個数を数え、その数だけ # を並べて出力します。

書き方

・bins = [(下限, 上限), ...] — 階級をタプルのリストで用意。
・for low, high in bins: でタプルを分解して反復。
・sum(1 for s in scores if low <= s <= high) — 階級に入る個数(度数)を数える。
・"#" * count — 度数の数だけ # を並べてバーにする。
・f"{low:3d}-{high:3d}" — 数値を3桁幅でそろえて整形。len() で合計件数。

書いて動かす

この回の課題

点数を5つの階級に分け、各階級の度数を数えて # の本数で表す度数分布表(ASCIIヒストグラム)を作ろう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

自分のPCでも続けてみませんか

Windows版 InsightPy は Python を同梱しているので、環境構築なしで同じコードを書いて実行できます。 書いたコードを保存しておけるほか、ステップ実行で変数の変化を1行ずつ確かめられます。 個人の学習や私的な目的でのご利用は、31日目以降も無料です(スクリプトの保存は10本まで)。 このブラウザ版の学習センターも、引き続き無料でお使いいただけます。