Chart.js 折れ線グラフ
by zu_min
HTML
<canvas id="c" height="120"></canvas>
<p>
<button id="reset">Reset Zoom</button>
</p>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/chart.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/chartjs-plugin-zoom.min.js"></script>
JavaScript
// データ作成(共通っぽい形)
const labels = Array.from({ length: 120 }, (_, i) => i); // 0..119
const series = labels.map(i => Math.sin(i / 10) * 20 + 100);
const ctx = document.getElementById("c");
const chart = new Chart(ctx, {
type: "line",
data: {
labels,
datasets: [{
label: "metric",
data: series,
borderWidth: 2,
pointRadius: 0,
tension: 0.15,
}],
},
options: {
responsive: true,
interaction: { mode: "index", intersect: false },
plugins: {
tooltip: {
callbacks: {
label: (item) => ` y = ${item.parsed.y.toFixed(2)}`
}
},
zoom: {
pan: { enabled: true, mode: "x" },
zoom: {
wheel: { enabled: true },
pinch: { enabled: true },
mode: "x",
}
},
title: {
display: true,
text: "Chart.js"
}
},
scales: {
x: { title: { display: true, text: "index" } },
y: { title: { display: true, text: "value" } },
}
}
});
document.getElementById("reset").addEventListener("click", () => chart.resetZoom());