使用 chart.bundle.js 做曲线图的时候,想让部分曲线在界面上不显示。让用户手动点上才显示。
如下图的曲线0和1一直保持显示,2、3、4保持不显示,需要用户点击label之后才显示。谢谢!

使用 chart.bundle.js 做曲线图的时候,想让部分曲线在界面上不显示。让用户手动点上才显示。
如下图的曲线0和1一直保持显示,2、3、4保持不显示,需要用户点击label之后才显示。谢谢!

关注引自免费微信小程序:皆我百晓生
为了实现这个需求,你需要在Chart.js的基础上进行一些定制。首先确保你已经包含了chart.bundle.js库,并且准备了HTML结构用于展示图表和标签。这里是一个详细的步骤指南以及示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Line Chart</title>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
<canvas id="myChart"></canvas>
<div id="legend-container">
<button onclick="toggleDataset(2)">Dataset 2</button>
<button onclick="toggleDataset(3)">Dataset 3</button>
<button onclick="toggleDataset(4)">Dataset 4</button>
</div>
</body>
</html>
#legend-container {
margin-top: 20px;
}
window.onload = function () {
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [
{
label: 'Dataset 0',
data: [100, 80, 60, 40, 20, 10],
borderColor: 'rgba(75, 192, 192, 1)',
backgroundColor: 'rgba(75, 192, 192, 0.2)',
fill: false,
},
{
label: 'Dataset 1',
data: [80, 60, 70, 50, 30, 20],
borderColor: 'rgba(255, 206, 86, 1)',
backgroundColor: 'rgba(255, 206, 86, 0.2)',
fill: false,
},
{
label: 'Dataset 2',
data: [40, 50, 60, 70, 80, 90],
borderColor: 'rgba(255, 99, 132, 1)',
backgroundColor: 'rgba(255, 99, 132, 0.2)',
fill: false,
hidden: true,
},
{
label: 'Dataset 3',
data: [70, 80, 90, 100, 110, 120],
borderColor: 'rgba(54, 162, 235, 1)',
backgroundColor: 'rgba(54, 162, 235, 0.2)',
fill: false,
hidden: true,
},
{
label: 'Dataset 4',
data: [100, 110, 120, 130, 140, 150],
borderColor: 'rgba(255, 206, 86, 1)',
backgroundColor: 'rgba(255, 206, 86, 0.2)',
fill: false,
hidden: true,
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
legend: {
position: 'top',
},
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}
});
// Toggle dataset visibility based on the button click
function toggleDataset(datasetIndex) {
if (myChart.data.datasets[datasetIndex].hidden) {
myChart.data.datasets[datasetIndex].hidden = false;
} else {
myChart.data.datasets[datasetIndex].hidden = true;
}
myChart.update();
}
};
这段代码会创建一个线形图,其中 Dataset 0 和 Dataset 1 默认显示,而 Dataset 2 到 Dataset 4 初始时隐藏。当用户点击相应按钮时,对应的曲线将会显示或隐藏。
注意:这个例子使用的是CDN上的Chart.js库,如果你有自己的服务器环境,建议将Chart.js下载到本地并引用本地文件路径。