#直方图 #平均值 #标准差 #浮点数

bin+lib histo_fp

具有可配置浮点数桶和浮点数样本的简单直方图

2 个版本

0.2.1 2020 年 8 月 16 日
0.2.0 2020 年 8 月 12 日

5#stddev

Download history 291/week @ 2024-04-01 172/week @ 2024-04-08 209/week @ 2024-04-15 300/week @ 2024-04-22 110/week @ 2024-04-29 207/week @ 2024-05-06 218/week @ 2024-05-13 147/week @ 2024-05-20 171/week @ 2024-05-27 256/week @ 2024-06-03 286/week @ 2024-06-10 143/week @ 2024-06-17 178/week @ 2024-06-24 143/week @ 2024-07-01 168/week @ 2024-07-08 179/week @ 2024-07-15

677 每月下载量
用于 cramino

Apache-2.0/MIT

21KB
375

histo

Build Status histo on crates.io histo on docs.rs

具有可配置桶数和终端友好显示(Display)的直方图。

此crate提供了一个Histogram类型,允许配置将使用的桶数,而不管输入样本的范围。这在显示直方图时很有用(例如,在将其打印到终端时),但牺牲了精确度和有效数字的跟踪。

它使用 O(n) 内存。

extern crate histo_fp;
use histo_fp::Histogram;

// Create a histogram that will have 10 buckets.
let mut histogram = Histogram::with_buckets(10, None);

// Adds some samples to the histogram.
for sample in 0..100 {
    histogram.add(sample as f64);
    histogram.add((sample * sample) as f64);
}

// Iterate over buckets and do stuff with their range and count.
for bucket in histogram.buckets() {
    do_stuff(bucket.start(), bucket.end(), bucket.count());
}

// And you can also `Display` a histogram!
println!("{}", histogram);

// Prints:
//
// ```
// # Number of samples = 200
// # Min = 0
// # Max = 9801
// #
// # Mean = 1666.5000000000005
// # Standard deviation = 2641.2281518263426
// # Variance = 6976086.1499999985
// #
// # Each ∎ is a count of 2
// #
//    0 ..  980 [ 132 ]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
//  980 .. 1960 [  13 ]: ∎∎∎∎∎∎
// 1960 .. 2940 [  10 ]: ∎∎∎∎∎
// 2940 .. 3920 [   8 ]: ∎∎∎∎
// 3920 .. 4900 [   7 ]: ∎∎∎
// 4900 .. 5880 [   7 ]: ∎∎∎
// 5880 .. 6860 [   6 ]: ∎∎∎
// 6860 .. 7840 [   6 ]: ∎∎∎
// 7840 .. 8820 [   5 ]: ∎∎
// 8820 .. 9800 [   6 ]: ∎∎∎
// ```

安装和用法

要在Rust项目中使用histocrate,请将其添加到您的Cargo.toml文件中

[dependencies]
histo = "0.1.0"

histocrate还附带命令行histo工具

$ cargo install histo
$ tail samples.txt
1
2
3
4
5
1
2
3
4
5
$ histo < samples.txt
# Number of samples = 150
# Min = 1
# Max = 10
#
# Mean = 5.833333333333334
# Standard deviation = 1.9301698255737905
# Variance = 3.7255555555555566
#
# Each ∎ is a count of 1
#
 1 ..  2 [  3 ]: ∎∎∎
 2 ..  3 [  3 ]: ∎∎∎
 3 ..  4 [  3 ]: ∎∎∎
 4 ..  5 [ 31 ]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 5 ..  6 [ 28 ]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 6 ..  7 [ 29 ]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 7 ..  8 [ 29 ]: ∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
 8 ..  9 [  8 ]: ∎∎∎∎∎∎∎∎
 9 .. 10 [  8 ]: ∎∎∎∎∎∎∎∎
10 .. 11 [  8 ]: ∎∎∎∎∎∎∎∎

依赖关系

~0.7–1MB
~15K SLoC