Javascript 带chart.js 2.1.4的可滚动x轴
我有一个有很多点要绘制的折线图Javascript 带chart.js 2.1.4的可滚动x轴,javascript,charts,chart.js,Javascript,Charts,Chart.js,我有一个有很多点要绘制的折线图 我希望x轴是可滚动的 我已经看过了一些,但他们提供的解决方案与图表js的旧版本 在chart.js版本2中是否有任何选项可以获得可滚动的x轴? 和 如何在chart.js版本2中获得y轴内容的宽度? 如果没有直接选项获得可滚动的x轴,我可以复制Y轴区域中的内容并在其他画布中绘制图像。我对相关问题的回答将对您有所帮助。在我的示例中,我已使Y轴可滚动,但这也可以很容易地应用于X轴 JS小提琴- 我正在使用animation onComplete和onProgress
我希望x轴是可滚动的 我已经看过了一些,但他们提供的解决方案与图表js的旧版本 在chart.js版本2中是否有任何选项可以获得可滚动的x轴?
和
如何在chart.js版本2中获得y轴内容的宽度?
如果没有直接选项获得可滚动的x轴,我可以复制Y轴区域中的内容并在其他画布中绘制图像。我对相关问题的回答将对您有所帮助。在我的示例中,我已使Y轴可滚动,但这也可以很容易地应用于X轴 JS小提琴- 我正在使用animation onComplete和onProgress选项重新绘制要随图表滚动的轴。(见附件)
$(function () {
var rectangleSet = false;
var canvasTest = $('#chart-Test');
var chartTest = new Chart(canvasTest, {
type: 'bar',
data: chartData,
maintainAspectRatio: false,
responsive: true,
options: {
tooltips: {
titleFontSize: 0,
titleMarginBottom: 0,
bodyFontSize: 12
},
legend: {
display: false
},
scales: {
xAxes: [{
ticks: {
fontSize: 12,
display: false
}
}],
yAxes: [{
ticks: {
fontSize: 12,
beginAtZero: true
}
}]
},
animation: {
onComplete: function () {
if (!rectangleSet) {
var scale = window.devicePixelRatio;
var sourceCanvas = chartTest.chart.canvas;
var copyWidth = chartTest.scales['y-axis-0'].width - 10;
var copyHeight = chartTest.scales['y-axis-0'].height + chartTest.scales['y-axis-0'].top + 10;
var targetCtx = document.getElementById("axis-Test").getContext("2d");
targetCtx.scale(scale, scale);
targetCtx.canvas.width = copyWidth * scale;
targetCtx.canvas.height = copyHeight * scale;
targetCtx.canvas.style.width = `${copyWidth}px`;
targetCtx.canvas.style.height = `${copyHeight}px`;
targetCtx.drawImage(sourceCanvas, 0, 0, copyWidth * scale, copyHeight * scale, 0, 0, copyWidth * scale, copyHeight * scale);
var sourceCtx = sourceCanvas.getContext('2d');
// Normalize coordinate system to use css pixels.
sourceCtx.clearRect(0, 0, copyWidth * scale, copyHeight * scale);
rectangleSet = true;
}
},
onProgress: function () {
if (rectangleSet === true) {
var copyWidth = chartTest.scales['y-axis-0'].width;
var copyHeight = chartTest.scales['y-axis-0'].height + chartTest.scales['y-axis-0'].top + 10;
var sourceCtx = chartTest.chart.canvas.getContext('2d');
sourceCtx.clearRect(0, 0, copyWidth, copyHeight);
}
}
}
}
});