Rust 使用plotlib创建SVG失败,出现“0”;y“U范围”无效;

Rust 使用plotlib创建SVG失败,出现“0”;y“U范围”无效;,rust,Rust,我试图数一数邮件中的字母,然后将它们导出到图像中 我已经成功地用这些字母创建了一个BTreeMap,并对它们进行了计数。我遇到的问题是将它们导出到带有plotlib的SVG。我对使用其他图书馆持开放态度,但我觉得我的问题在于更多地使用图书馆而不是图书馆本身 这是我的柜台密码 Cargo.toml [dependencies] plotlib = "0.4.0" main.rs 使用std::collections::btree\u map::BTreeMap; 使用plotlib::style

我试图数一数邮件中的字母,然后将它们导出到图像中

我已经成功地用这些字母创建了一个
BTreeMap
,并对它们进行了计数。我遇到的问题是将它们导出到带有plotlib的SVG。我对使用其他图书馆持开放态度,但我觉得我的问题在于更多地使用图书馆而不是图书馆本身

这是我的柜台密码

Cargo.toml

[dependencies]
plotlib = "0.4.0"
main.rs

使用std::collections::btree\u map::BTreeMap;
使用plotlib::style::BarChart;
fn main(){
让消息:&str=“这是一条长消息”;
让mut count=BTreeMap::new();
对于message.trim()到_lowercase().chars()中的c{
如果c.是字母(){
*计数项(c)或插入(0)+=1
}
}
println!(“每个字符出现的次数”);
对于(ch,计数)输入和计数{
println!(“{:?}:{}”,ch,count);
让计数=*计数为f64;
plotlib::barchart::barchart::new(count).label(ch.to_string());
}
让v=plotlib::view::categorialView::new();
plotlib::page::page::single(&v)
.save(“barchart.svg”)
.expect(“保存svg”);
}
我原以为这个程序会生成一个包含数据的SVG,但主线程却感到恐慌

每个字符出现的次数
“a”:2
“e”:2
“g”:2
“h”:1
“i”:2
“l”:1
“m”:1
“n”:1
o:1
‘s’:4
‘t’:1
线程'main'在'saving svg:ErrorMessage{msg:'invalid y_range:range{lower:inf,upper:-inf}}}'时惊慌失措,src/libcore/result.rs:997:5
注意:使用'RUST_BACKTRACE=1'环境变量运行以显示回溯。
您的视图为空。因此,无需绘制任何内容,SVG的边界处于初始无效状态

您必须将
条形图
添加到
分类视图
中,然后在页面上使用该视图,例如:

let mut data = Vec::new();

for (ch, count) in &count {
    println!("{:?}: {}", ch, count);
    let count = *count as f64;
    data.push(plotlib::barchart::BarChart::new(count).label(ch.to_string()));
}

// Add data to the view
let v = data
    .iter()
    .fold(plotlib::view::CategoricalView::new(), |view, datum| {
        view.add(datum)
    });

plotlib::page::Page::single(&v)
    .save("barchart.svg")
    .expect("saving svg");

你真棒!非常感谢。请确保在更新内容时更新文章标题。