📅  最后修改于: 2023-12-03 15:29:57.857000             🧑  作者: Mango
Chart.js 是一个流行的 JavaScript 库,用于创建各种类型的图表,包括堆叠条形图。在本文中,我们将介绍如何使用 Chart.js 创建堆叠条形图,并显示总数。
首先,我们需要创建一个 HTML 文件,以便为我们的条形图提供工作空间和必要的库。 HTML 文件应包含以下内容:
<!DOCTYPE html>
<html>
<head>
<title>Chart.js 堆叠条形图总数</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
<canvas id="myChart"></canvas>
<script src="script.js"></script>
</body>
</html>
请注意,我们添加了 Chart.js 库的链接,并在 <canvas>
元素中添加了一个 id,以便稍后在脚本文件中使用。
接下来,我们需要创建一个 JavaScript 文件,以便在 HTML 文件中包含它。在这个文件中,我们将定义堆叠条形图的数据,以及一些设置和样式。
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
datasets: [{
label: '第一组数据',
data: [12, 19, 3, 5, 2, 3, 10, 15, 8, 18, 7, 12],
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgba(255, 99, 132, 1)',
borderWidth: 1
}, {
label: '第二组数据',
data: [3, 5, 2, 6, 8, 1, 9, 7, 4, 15, 9, 2],
backgroundColor: 'rgba(54, 162, 235, 0.2)',
borderColor: 'rgba(54, 162, 235, 1)',
borderWidth: 1
}, {
label: '第三组数据',
data: [1, 3, 4, 2, 7, 2, 10, 5, 8, 12, 6, 3],
backgroundColor: 'rgba(255, 206, 86, 0.2)',
borderColor: 'rgba(255, 206, 86, 1)',
borderWidth: 1
}]
},
options: {
scales: {
xAxes: [{
stacked: true
}],
yAxes: [{
stacked: true
}]
},
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
var sum = 0;
var label = data.datasets[tooltipItem.datasetIndex].label || '';
if (label) {
label += ': ';
}
for (var i = 0; i < data.datasets.length; i++) {
sum += data.datasets[i].data[tooltipItem.index];
}
label += sum;
return label;
}
}
}
}
});
在这个脚本文件中,我们定义了 Chart 对象并指定了类型为 'bar' 的条形图。我们还定义了堆叠条形图的标签和数据集。每个数据集都具有标签、数据、背景颜色、边框颜色和边框宽度。在选项中,我们设置了 x 轴和 y 轴上的刻度,并定义了一个回调函数,以显示每个堆叠中的总数。
现在,我们已经创建了 HTML 和 JavaScript 文件,我们可以在本地计算机上运行它们或将它们上传到 Web 服务器。当我们运行 HTML 文件时,我们会得到一个堆叠条形图,如下所示:
当我们将鼠标悬停在每个条形元素上时,我们会看到一个工具提示,其中包含该堆叠中的总数。
# 使用 Chart.js 显示堆叠条形图总数
[Chart.js](https://www.chartjs.org/) 是一个流行的 JavaScript 库,用于创建各种类型的图表,包括堆叠条形图。在本文中,我们将介绍如何使用 Chart.js 创建堆叠条形图,并显示总数。
## 步骤1:创建 HTML 文件
首先,我们需要创建一个 HTML 文件,以便为我们的条形图提供工作空间和必要的库。 HTML 文件应包含以下内容:
```html
<!DOCTYPE html>
<html>
<head>
<title>Chart.js 堆叠条形图总数</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
<canvas id="myChart"></canvas>
<script src="script.js"></script>
</body>
</html>
请注意,我们添加了 Chart.js 库的链接,并在 <canvas>
元素中添加了一个 id,以便稍后在脚本文件中使用。
接下来,我们需要创建一个 JavaScript 文件,以便在 HTML 文件中包含它。在这个文件中,我们将定义堆叠条形图的数据,以及一些设置和样式。
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
datasets: [{
label: '第一组数据',
data: [12, 19, 3, 5, 2, 3, 10, 15, 8, 18, 7, 12],
backgroundColor: 'rgba(255, 99, 132, 0.2)',
borderColor: 'rgba(255, 99, 132, 1)',
borderWidth: 1
}, {
label: '第二组数据',
data: [3, 5, 2, 6, 8, 1, 9, 7, 4, 15, 9, 2],
backgroundColor: 'rgba(54, 162, 235, 0.2)',
borderColor: 'rgba(54, 162, 235, 1)',
borderWidth: 1
}, {
label: '第三组数据',
data: [1, 3, 4, 2, 7, 2, 10, 5, 8, 12, 6, 3],
backgroundColor: 'rgba(255, 206, 86, 0.2)',
borderColor: 'rgba(255, 206, 86, 1)',
borderWidth: 1
}]
},
options: {
scales: {
xAxes: [{
stacked: true
}],
yAxes: [{
stacked: true
}]
},
tooltips: {
callbacks: {
label: function(tooltipItem, data) {
var sum = 0;
var label = data.datasets[tooltipItem.datasetIndex].label || '';
if (label) {
label += ': ';
}
for (var i = 0; i < data.datasets.length; i++) {
sum += data.datasets[i].data[tooltipItem.index];
}
label += sum;
return label;
}
}
}
}
});
在这个脚本文件中,我们定义了 Chart 对象并指定了类型为 'bar' 的条形图。我们还定义了堆叠条形图的标签和数据集。每个数据集都具有标签、数据、背景颜色、边框颜色和边框宽度。在选项中,我们设置了 x 轴和 y 轴上的刻度,并定义了一个回调函数,以显示每个堆叠中的总数。
现在,我们已经创建了 HTML 和 JavaScript 文件,我们可以在本地计算机上运行它们或将它们上传到 Web 服务器。当我们运行 HTML 文件时,我们会得到一个堆叠条形图,并在每个条形元素上看到一个工具提示,其中包含该堆叠中的总数。