charts-rs 0.2.0 支持更多的图表格式配置
charts-rs
charts-rs
是纯rust实现的图表库,使用简单而且性能高效,生成svg低于10ms,而png也低于50ms,便于在各种无法直接渲染svg的场景下使用。
概要
charts-rs
提供简单的方式生成图表,它支持svg
与png
两种输出格式,以及支持light
, dark
, grafana
,ant
,vintage
, walden
, westeros
, chalk
与shine
主题,默认的主题为light
。现已支持以下类型的图表:Bar
, HorizontalBar
, Line
, Pie
, Radar
,Scatter
,Candlestick
,Table
以及 MultiChart
,其相关样式参考Apache ECharts
。
特性
- 所有图表均支持多种主题,当前已支持了9种主题颜色
- 可通过ttf或otf中加载更多的字体库
- 支持平滑,填充,最低最高点以及线标示
- 图表使用多种文本标示,例如:圆角矩形、圆形以及矩形等
- 曲线图支持平滑曲线、拆线、区域填充等效果
- 饼图支持普通与玫瑰饼图
- 支持两组Y轴线的展示
- 图表中的所有元素均支持颜色、字体、字体颜色等基本属性配置
- 支持以
json
的形式初始化图表,更简单易用 - svg与png的格式便于更多的应用场景
- 网页版的json编辑器可用于一步式尝试各选项的效果,填充简化与完整版的配置选择
示例
可以使用网页版尝试使用charts-rs
的相关图表示例,可以直接改动配置后,重新生成效果图,非常简单而有用。
示例地址: https://charts.npmtrend.com/
示例项目代码: https://github.com/vicanso/charts-rs-web
各种主题的预览效果
Grafana
Light
Dark
Ant
Vintage
Walden
Westeros
Chalk
Shine
Rust示例
使用Option的形式创建图表
use charts_rs::{ BarChart, Box, SeriesCategory, THEME_GRAFANA }; let mut bar_chart = BarChart::new_with_theme( vec![ ("Evaporation", vec![2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6]).into(), ( "Precipitation", vec![2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6], ) .into(), ("Temperature", vec![2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3]).into(), ], vec![ "Mon".to_string(), "Tue".to_string(), "Wed".to_string(), "Thu".to_string(), "Fri".to_string(), "Sat".to_string(), "Sun".to_string(), ], THEME_GRAFANA, ); bar_chart.title_text = "Mixed Line and Bar".to_string(); bar_chart.legend_margin = Some(Box { top: bar_chart.title_height, bottom: 5.0, ..Default::default() }); bar_chart.series_list[2].category = Some(SeriesCategory::Line); bar_chart.series_list[2].y_axis_index = 1; bar_chart.series_list[2].label_show = true; bar_chart .y_axis_configs .push(bar_chart.y_axis_configs[0].clone()); bar_chart.y_axis_configs[0].axis_formatter = Some("{c} ml".to_string()); bar_chart.y_axis_configs[1].axis_formatter = Some("{c} °C".to_string()); println!("{}", &bar_chart.svg().unwrap()); svg_to_png(&bar_chart.svg().unwrap()).unwrap();
通过JSON字符串配置的形式创建图表
use charts_rs::{BarChart, svg_to_png}; let bar_chart = BarChart::from_json( r###"{ "width": 630, "height": 410, "margin": { "left": 10, "top": 5, "right": 10 }, "title_text": "Bar Chart", "title_font_color": "#345", "title_align": "right", "sub_title_text": "demo", "legend_align": "left", "series_list": [ { "name": "Email", "label_show": true, "data": [120.0, 132.0, 101.0, 134.0, 90.0, 230.0, 210.0] }, { "name": "Union Ads", "data": [220.0, 182.0, 191.0, 234.0, 290.0, 330.0, 310.0] } ], "x_axis_data": [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ] }"###, ).unwrap(); println!("{}", bar_chart.svg().unwrap()); svg_to_png(&bar_chart.svg().unwrap()).unwrap();
开源协议声明
This project is licensed under the Apache License 2.0 license.

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
欧拉市场份额达36.8%,服务器操作系统市场份额第一
12月15日,以“崛起数字时代,引领数智未来”为主题的操作系统大会2023今日在北京国家会议中心举办,大会由开放原子开源基金会、中国电子技术标准化研究院、国家工业信息安全发展研究中心、中国软件行业协会共同主办,旨在汇聚全球产业界创新力量,构筑坚实的基础软件根基,推动基础软件技术持续创新,共建全球开源新生态。 过去一年,欧拉加速发展。截至目前,欧拉累计装机量超过610万套,根据IDC预测,2023年欧拉在中国服务器操作系统市场份额达到36.8%。开源四年,欧拉实现了跨越式发展,成长为中国第一服务器操作系统,并在技术创新、生态发展、社区合作、商业落地上建立了完善的发展体系,形成了产业正循环。欧拉成为中国首个达成市场份额第一的基础软件,这是中国基础软件产业发展的重要里程碑,为数字中国打造了坚实可靠的软件底座。 开放原子开源基金会理事长孙文龙在大会致辞中表示,充分利用开源、参与开源、支持开源、回馈开源,是实现操作系统技术创新和产业繁荣的有效路径。 openEuler开源社区秉承“共建、共享、共治”的原则,携手全产业链共建可持续发展的操作系统产业生态。社区开源以来,已吸引1300+家头部企业、研...
- 下一篇
MathLabTool 数学仿真、图形化工具,新增文本分割特征提取,231215
MathLabTool 是一款数学仿真、图形化工具,可为数学相关的实验、仿真、图形化等各类需求,提供便捷工具。 可以为数据绘制各类 2D、3D 图形,视频、图像处理,显示实时串口数据图形,封装各类算法。 https://www.oschina.net/p/mathlabtool 更新功能列表(231215): 增加文本分割统计接口。 增加文本异同特征提取接口。 var ret = mlt_text_same_diff("用小组词", "用一字组词"); mlt_page_console_log('Hi Code!\n', ret); mlt_text_all_word_cnt(true, "./extra_files/source_ts.txt", "./extra_files/word_hz_all.json");
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6