chart.js - 用于条件数据的 Chartjs 圆环图
问题描述
因为我对图表库很陌生,就我而言,我被要求根据我的要求实现一个 Chartjs 库。所以我选择了一个chartjs库。我必须想知道是否有人可以帮助我的用例,那么这对我来说将是一个很好的节省时间。实际上,我从早上开始就在谷歌上搜索这个。
实际用例是我有甜甜圈图,我试图在其中显示单个值的数据。当我浏览文档时,chartjs 可以处理一组数据值。但是我的 API 只有一个值,在我的例子中它是一个计数器变量。假设如果我的最大计数器限制是 5000,那么我必须将 5000 显示为最大计数器,而当前计数器是 100,那么我必须在圆环弧中以红色显示它。表示图表消耗了多少类似的数据。
假设总运行次数 5000 如果运行次数变为 100 之类的任何计数,那么我们需要从总运行次数中减去 - 当前运行次数 = 甜甜圈圈内的 4900。随着运行次数的增加,我们需要在甜甜圈圆图中显示减少的运行次数。如果当前运行次数达到总运行次数,则以红色显示圆圈并将计数设为 0。
这可以使用 Chartjs 吗?见下图。
解决方案
Chart.js 中没有内置支持这样做,但是,可以使用非常简单的 hack 来实现。查看代码并尝试理解,如果有任何问题,请随时发表评论。
我使用 chartjs-datalabels 插件在饼图上显示数据标签。
希望能帮助到你!
小提琴-> http://jsfiddle.net/y6mnkz84/7/
function drawPieChart(value, maxValue) {
var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: ["Consumed"],
datasets: [{
data: [value, maxValue - value],
backgroundColor: ['green', 'red'],
}]
},
options: {
tooltips: {
enabled: false,
},
plugins: {
datalabels: {
backgroundColor: function(context) {
return context.dataset.backgroundColor;
},
display: function(context) {
var dataset = context.dataset;
var value = dataset.data[context.dataIndex];
return value > 0;
},
color: 'white'
}
}
}
});
}
drawPieChart(5000, 5000);
推荐阅读
- javascript - 如何将网页中的字符串输入作为 Java 对象传递给 @RestController?
- performance - 与后续执行相比,Drools 初始调用速度较慢
- python-3.x - 如何在烧瓶应用程序中初始化多处理类
- oracle11g - 合并两个 sys_refcursor 的输出
- ios - 刷新时锁定滚动视图?
- git - 将 .git 上移多个级别
- java - DynamoDB - 如何检查现有表是空的还是非空的
- python - 在python中确保字典作为另一个类的构造函数中的参数传递的最佳方法/实践是什么,不会发生突变?
- python - Upsert 到 pyq 中的表
- python - 如何在图像中找到矩形轮廓?