11.16.2013

Python: Visualizing Histogram in Terminal

Python: ターミナル上でヒストグラムを可視化する

何本目の車輪か知らないが、ターミナル上でヒストグラムを可視化するスクリプトを再発明。

標準入力に対して、1行ずつ数字(整数or小数)を放り込むと 10個に分けた区間ごとの発生頻度を
「*」の数で可視化する。

1個または複数のファイルを指定して読み取ることも可能。(複数ファイルの場合は合算)

アクセスログや各種ログに含まれる数値の分布を即座に判断しなければならない場合などに使用している。
継続的に見るデータであれば、GrowthForecast などのツールを使った方がいいと思う。

コード

実行例

$ (for i in {1..10}; do echo $RANDOM; done) | ./print_histo.py
[  458.000,  3654.300): ************************                              1
[ 3654.300,  6850.600): ************************************************      2
[ 6850.600, 10046.900):                                                       0
[10046.900, 13243.200): ************************************************      2
[13243.200, 16439.500): ************************                              1
[16439.500, 19635.800):                                                       0
[19635.800, 22832.100): ************************                              1
[22832.100, 26028.400):                                                       0
[26028.400, 29224.700): ************************************************      2
[29224.700, 32421.000]: ************************                              1
$ (for i in {1..10000}; do echo $RANDOM; done) | ./print_histo.py
[    1.000,  3277.600): ********************************************        975
[ 3277.600,  6554.200): *********************************************      1002
[ 6554.200,  9830.800): *******************************************         949
[ 9830.800, 13107.400): ************************************************   1058
[13107.400, 16384.000): *********************************************      1011
[16384.000, 19660.600): **********************************************     1022
[19660.600, 22937.200): ********************************************        988
[22937.200, 26213.800): **********************************************     1016
[26213.800, 29490.400): **********************************************     1016
[29490.400, 32767.000]: *******************************************         963
$

0 件のコメント:

コメントを投稿