javascript - CanvasJS Chart.js - 如何使axisY具有恒定范围?
问题描述
我有一个动态图表,每 100 毫秒左右更新一次数据。我知道我的数字范围从 0 到 100,但动态图表会不断调整范围。如何保持恒定的 Y 轴范围,从 0 到 100,以便按比例查看所有内容?
下面的代码:
function scoreGraphSetup() {
// Global vars used:
// scoreBuffer, latestScore
//var scoreBuffer = []; // dataPoints
var chart = new CanvasJS.Chart("chartContainer", {
title :{
text: "Motion Score (last few seconds)"
},
data: [{
type: "line",
dataPoints: scoreBuffer
}],
axisY: {
prefix: "",
suffix: "",
includeZero: false
// I need to do something in axisY, right?
},
});
var xVal = 0;
var yVal = 0;
var updateInterval = 100;
var dataLength = 150; // number of dataPoints visible at any point
var updateChart = function (count) {
count = count || 1;
for (var j = 0; j < count; j++) {
//yVal = yVal + Math.round(5 + Math.random() *(-5-5));
scoreBuffer.push({
x: xVal,
y: latestScore // push on the latest analysis score //formerly: yVal
});
xVal++;
}
if (scoreBuffer.length > dataLength) {
scoreBuffer.shift();
}
chart.render();
};
updateChart(dataLength);
setInterval(function(){updateChart()}, updateInterval);
}
解决方案
修复了canvasjs的 y 轴最小值和最大值:
maximum:number设置 Axis 上允许的最大值。大于最大值的值将被剪裁。平移图表时最大也设置上限。
默认值:根据数据自动计算
示例:100、350..
注意:如果没有设置最大值,则自动计算。设置最大值时,应注意最大值应大于最小值。
根据您的示例:
axisY:{
minimum: 0,
maximum: 100
},
由于超出范围 (0-100) 的值会被“裁剪”,因此您需要添加一个固定的或算法的最小-最大边界,以使最终用户可以看到已达到或超过该数据值。
推荐阅读
- reactjs - 如何在 React 中安全地将 props 有条件地传递给功能组件
- java - 无法设置 ArrayList 值
- html - 固定浮动元素的 CSS 位置
- python - SQLAlchemy - MySQL - 检查现有表中是否存在行
- java - 如何在recyclerview中第一次从firebase中获取数据只有10行
- linux - 为什么虚拟地址 55Fxxxxxxxxx 和 7FFxxxxxxxxx 之间是 64 位 Linux 用户空间?(只有 45 位)
- python - 验证是否为每个设备生成的输出文件在一个文件名中
- flutter - 保持 Flutter dart 流打开以观察模型的变化
- ios - Visual Studio mac,xamarin,没有显示模拟器
- spring - java.lang.IllegalArgumentException:区域设置部分“en-US,en;q=0.9”包含无效字符]