javascript - 显示各种图表值和工具提示
问题描述
我有条形图,我想显示值数据的图表和带有 data1 和图表 js 的工具提示
var canvas = document.getElementById("barChart");
var ctx = canvas.getContext('2d');
// Global Options:
Chart.defaults.global.defaultFontColor = 'dodgerblue';
Chart.defaults.global.defaultFontSize = 16;
// Data with datasets options
var data = {
labels: ["Vanilla", "Chocolate", "Strawberry"],
datasets: [
{
label: "Ice Cream Prices ",
fill: true,
backgroundColor: [
'moccasin',
'saddlebrown',
'lightpink'],
data: [11, 9, 4],
data1: [111, 19, 14]
}
]
};
var options = {
tooltips: {
callbacks: {
label: function(tooltipItem) {
return "$" + Number(data1) + " and so worth it !";
}
}
},
title: {
display: true,
text: 'Ice Cream Truck',
position: 'bottom'
},
scales: {
yAxes: [{
ticks: {
beginAtZero:true
}
}]
}
};
// Chart declaration:
var myBarChart = new Chart(ctx, {
type: 'bar',
data: data,
options: options
});
body{
background-color: #333;
}
#barChart{
background-color: aliceblue;
border-radius: 6px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.1/Chart.min.js"></script>
<div class="container">
<br />
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<!-- Chart.js Canvas Tag -->
<canvas id="barChart"></canvas>
</div>
<div class="col-md-1"></div>
</div>
</div>
我有数据显示图表,并尝试显示带有 data1 值的工具提示。但无法显示。现在出现错误。
解决方案
您应该tooltips.callback.label
按如下方式定义您的函数:
tooltips: {
callbacks: {
label: (tooltipItem, data) => {
const data1 = data.datasets[0].data1;
return "$" + data1[tooltipItem.index] + " and so worth it !";
}
}
}
有关更多信息,请参阅Chart.js v2.9.4 文档中的标签回调一章。
请查看您修改后的可运行代码,看看它是如何工作的。
var canvas = document.getElementById("barChart");
var ctx = canvas.getContext('2d');
// Global Options:
Chart.defaults.global.defaultFontColor = 'dodgerblue';
Chart.defaults.global.defaultFontSize = 16;
// Data with datasets options
var data = {
labels: ["Vanilla", "Chocolate", "Strawberry"],
datasets: [{
label: "Ice Cream Prices ",
fill: true,
backgroundColor: [
'moccasin',
'saddlebrown',
'lightpink'
],
data: [11, 9, 4],
data1: [111, 19, 14]
}]
};
var options = {
tooltips: {
callbacks: {
label: (tooltipItem, data) => {
const data1 = data.datasets[0].data1;
return "$" + data1[tooltipItem.index] + " and so worth it !";
}
}
},
title: {
display: true,
text: 'Ice Cream Truck',
position: 'bottom'
},
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
};
// Chart declaration:
var myBarChart = new Chart(ctx, {
type: 'bar',
data: data,
options: options
});
body{
background-color: #333;
}
#barChart{
background-color: aliceblue;
border-radius: 6px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.min.js"></script>
<div class="container">
<br />
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<canvas id="barChart"></canvas>
</div>
<div class="col-md-1"></div>
</div>
</div>
推荐阅读
- html - 标题、hr 和 btn 在同一行
- javascript - 类构造函数中的原型属性
- pyspark - 在 pyspark 中将集合聚合成更大的集合
- python - 如何从数据框中删除 NaN 值?
- asp.net-core - 无法让 AddAccessTokenManagement() 使用来自 AddDistributedSqlServerCache() 的缓存服务
- javascript - 在 JavaScript 中获取 Promise 返回的值
- robotframework - 如果使用“或”,如何制作运行关键字?
- sql - 将逻辑应用于行集
- python-3.x - ModuleNotFoundError:没有名为“win32api”的模块
- python - 如何在相对较短的时间内在 OpenCV 中用 python 编辑视频?