前回
https://beyondthe20th.blogspot.com/2022/09/python13.html
前回は1のステップをやったので今回は2から
2.データの分類
前回の投稿で、横軸の数は、「(最大値 - 最小値+1) / 横軸の幅」で算出した。データを格納すべきリストの数と横軸の数は同じなので、同数のリストを作成する。
distributed_list = [[] for _ in range(n)]
#nは横軸の数「(最大値 - 最小値+1) / 横軸の幅」
ここで作成したリストにデータを格納していく。
これは、そのデータが何番目のリストに格納されるかを調べるためには、「(対象のデータ-データリストの最小値)//横軸の幅」で求められる。つまり、10区切り、1~100の場合に、8は、(8-1)//10 = 0となり、0番目のリストに格納される(つまりindex = 0)。
これをPython 3のコードに直すと以下のようになる。
for i in data_array: counter = (i - start) // sep distributed_list[counter].append(i)
これでdistributed_listには次のようにデータが格納された。
distributed_list = [[1番目の軸のデータ], [2番目の軸のデータ]...]
これでデータの分類が完了した。あとは、各配列に格納されているデータの個数をカウントし、縦軸を生成したうえでグラフ化、CSV出力を行えば、作成完了になる。
次回