最近项目上需要做统计直方图,一般的做法是把数据直接导入 origin、qtiplot等专门的作图软件即可。
当然,也可以使用Python的 matplotlib 很方便地出图。
由于想在命令行中直接作图,于是在网上找了一些方法。做统计直方图需要两个步骤,一个是确定每个盒子(box)的宽度,然后就是把数据装入盒子中进行计数。经过测试,比较好的方法是使用 Boris Gorelik 编写的Python脚本进行实现,其中需要调用 numpy 包。其脚本中的作图函数有两个重要的参数,一个是盒子的数量 bins
(也就是图像所占的行数),另一个是图像所需要绘制数据点的个数 scale_output
(可以理解为图像的宽度)。该脚本在 Github 上有一个修改版本可以用于 Linux 环境下的管道输出作图。
下面是测试的效果:
看着还是可以的。
参考资料:
- Boris Gorelik的博客文章 ASCII histograms are quick, easy to use and to implement
- Boris Gorelik的原版代码
- 可以用于 pipe 的改版代码