javascript - Chart.js 添加带有现金流的工具提示
问题描述
我正在尝试制作每个客户付款时间的 chart.js 图。在每个栏的工具提示中,我想包含现金流百分比。
现在我在一个柱上获得所有现金流值,我想为每个柱分配一个值:
我将这些百分比保存在一个数组中,例如:
var cashFlow = [86.84, -36.36];
代码图:
var timeOfPaymentChart = new Chart(timeOfPaymentChart, {
type: 'bar',
data: {
labels: customers,
datasets: [{
label: 'Days between invoice and payment ',
data: paymentDays,
backgroundColor: '#FFFFFF',
borderWidth: 1,
borderColor: 'white',
hoverBorderWidth: 3,
hoverBorderColor: 'white'
}],
},
options: {
scales: {
xAxes: [{
ticks: {
fontColor: '#FFFFFF',
}
}],
yAxes: [{
ticks: {
fontColor: '#FFFFFF',
}
}]
},
tooltips: {
callbacks: {
footer: function(tooltipItem, data) {
var cf = cashFlow;
return "Cashflow: " + cf;
}
}
},
legend: {
display: false,
}
}
});
我该怎么做呢?
解决方案
如下更改 tooltips.callbacks.footer 函数,它将按预期工作。
tooltips: {
callbacks: {
footer: tooltipItem => 'Cashflow: ' + cashFlow[tooltipItem[0].index]
}
},
请查看您修改后的可运行代码,看看它是如何工作的。
var cashFlow = [86.84, -36.36];
var timeOfPaymentChart = new Chart('myChart', {
type: 'bar',
data: {
labels: ['MultiSafePay', 'Koll'],
datasets: [{
label: 'Days between invoice and payment ',
data: [38, 22],
backgroundColor: '#FFFFFF',
borderWidth: 1,
borderColor: 'white',
hoverBorderWidth: 3,
hoverBorderColor: 'white'
}],
},
options: {
scales: {
xAxes: [{
ticks: {
fontColor: '#FFFFFF',
}
}],
yAxes: [{
ticks: {
beginAtZero: true,
fontColor: '#FFFFFF',
}
}]
},
tooltips: {
callbacks: {
footer: tooltipItem => 'Cashflow: ' + cashFlow[tooltipItem[0].index]
}
},
legend: {
display: false,
}
}
});
body {
background: lightblue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<canvas id="myChart" height="90"></canvas>
推荐阅读
- machine-learning - Keras 移动网络实现
- javascript - 在悬停时覆盖内联样式然后返回
- json - JSON解码不起作用
- php - 如何在 Centos 7 php71 上安装 pdo_ibm
- python - Django(2.0.6):更新信号中的 m2m 相关对象
- php - Foreach 仅返回最后一项
- docker - 使用 docker-compose 构建 Haskell 堆栈项目时出错
- javascript - Angular 6 - 方法总是返回 -1
- javascript - 在 ES6 类中实现数据隐私的另一种方法
- vba - 为一系列单元格着色(VBA)