javascript - 是否可以在 chartJs 上为不同的 yAxis 间隔创建不同的步长?
问题描述
我有一个如下图
正如您所看到的,从 0 开始并且stepSize
是 0.1,但我希望它重新开始0
并直接打印0.7
,然后继续执行每个0.1
步骤。在这里你可以看到下面的预期
这是我做的ticks
配置yAxis
ticks: {
min: 0,
// forces step size to be 5 units
stepSize: 0.1
}
我需要类似stepSize:0.7
(0-0.7 之间)的东西,然后0.1
如果大于.Unfortunately0.7
我没有机会像这样实现。有没有其他选择?
Codepen 演示:https ://codepen.io/Cicek96/pen/vYGVwmy
解决方案
ticks
您可以通过如下定义来伪造零线的刻度:
ticks: {
min: 0.65,
stepSize: 0.1,
callback: (value, index, values) => index + 1 == values.length ? 0 : value
}
如需进一步解释,请查看从 Chart.js 文档创建自定义刻度格式。
请看一下下面的可运行代码,看看它是如何工作的。
new Chart(document.getElementById("myChart"), {
type: "line",
data: {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [{
label: "APAC RE index",
data: [0.7, 0.8, 0.9, 1, 0.9, 0.8, 0.7],
fill: false,
borderColor: "rgb(255, 0, 0)"
}]
},
options: {
legend: {
display: false
},
scales: {
yAxes: [{
ticks: {
min: 0.65,
stepSize: 0.1,
callback: (value, index, values) => index + 1 == values.length ? 0 : value
}
}]
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<canvas id="myChart" height="90"></canvas>
推荐阅读
- firebase - 带有 WebView 的 Flutter 应用中的 Firebase 身份验证
- javascript - 在另一个函数中推送函数?
- javascript - 将数字转换为小时?
- java - 如何在通用文件夹中设置 JAVA_HOME
- abap - 从 ABAP 中的 mscomm 读取数据
- cas - CAS 委托身份验证:cas pac4j 中的动态客户端 ID 和机密
- python - 声波的最小表示?
- lua - 文件:写()错误:“'写'的错误参数#1(字符串预期,得到零)”
- visual-studio-2017 - cshtml is not able to format correctly in VS2017
- delphi - delphi firemonkey add custom font