我使用过chart.js 1.0并且我的圆环图工具提示显示基于数据除以数据集的百分比,但是我无法用图表2.0复制它 .
我搜索了高低,并没有找到一个有效的解决方案 . 我知道它会受到选择,但我尝试的所有东西都让馅饼功能失调 .
<html>
<head>
<title>Doughnut Chart</title>
<script src="../dist/Chart.bundle.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<style>
canvas {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
}
</style>
</head>
<body>
<div id="canvas-holder" style="width:75%">
<canvas id="chart-area" />
</div>
<script>
var randomScalingFactor = function() {
return Math.round(Math.random() * 100);
};
var randomColorFactor = function() {
return Math.round(Math.random() * 255);
};
var randomColor = function(opacity) {
return 'rgba(' + randomColorFactor() + ',' + randomColorFactor() + ',' + randomColorFactor() + ',' + (opacity || '.3') + ')';
};
var config = {
type: 'doughnut',
data: {
datasets: [{
data: [
486.5,
501.5,
139.3,
162,
263.7,
],
backgroundColor: [
"#F7464A",
"#46BFBD",
"#FDB45C",
"#949FB1",
"#4D5360",
],
label: 'Expenditures'
}],
labels: [
"Hospitals: $486.5 billion",
"Physicians & Professional Services: $501.5 billion",
"Long Term Care: $139.3 billion",
"Prescription Drugs: $162 billion",
"Other Expenditures: $263.7 billion"
]
},
options: {
responsive: true,
legend: {
position: 'bottom',
},
title: {
display: false,
text: 'Chart.js Doughnut Chart'
},
animation: {
animateScale: true,
animateRotate: true
}
}
};
window.onload = function() {
var ctx = document.getElementById("chart-area").getContext("2d");
window.myDoughnut = new Chart(ctx, config);{
}
};
</script>
</body>
</html>
2 回答
对于那些想要根据当前显示在图表上的内容显示动态百分比的人(不是基于总数据),您可以尝试以下代码:
Update: 以下答案显示基于总数据的百分比,但
@William Surya Permana
有一个很好的答案,根据显示的数据进行更新https://stackoverflow.com/a/49717859/2737978在
options
中,您可以传入一个tooltips
对象(更多内容可以在chartjs docs处读取)tooltips
的字段,用于获得所需的结果,是一个带有label
字段的callbacks
对象 .label
将是一个函数,它接收您悬停的工具提示项和构成图表的数据 . 只需从此函数返回一个您想要进入工具提示的字符串 .这是一个这样的例子
以及您提供的数据的完整示例
fiddle