gpt4 book ai didi

javascript - 仅 vis graph2d y 轴整数

转载 作者:行者123 更新时间:2023-12-02 15:35:30 25 4
gpt4 key购买 nike

有没有办法让 y 轴具有基于整数的刻度线。这将是一个巨大的帮助。另外,如果刻度线只能是

的倍数
2 when 0 <= window height <= 10
10 when 10 < window height <= 100
100 window height < 100

...那就太好了——尽管不是绝对必要的。抱歉使用伪代码。

现在我正在执行以下操作,它工作正常,但效果不是很好。

this.dataset = new vis.DataSet();
var options = {
start: vis.moment(),
end: vis.moment().add(50, 'seconds'),
showMajorLabels: false,
zoomable: true,
dataAxis: {
left: {
range: {
min: 0
}
},
}
style: 'bar',
drawPoints: false,
}
this.graph = new vis.Graph2d(container/*assume I made it :)*/, this.dataset, options);

//+~~~~~~~~~~+
//| LATER ON |
//+~~~~~~~~~~+

range = this.graph.getWindow();
var current = this.dataset.get({
filter: function(item) {
return item.x > range.start && item.x < range.end;
}
});
var maxY = 0;
for (var i = 0, currentLen = current.length; i < currentLen; i++) {
if (current[i].y > maxY) {
maxY = current[i].y;
}
}
maxY = maxY < 8 ? Math.floor((maxY + 4) / 4) * 4 : Math.floor((maxY + 6) / 6) * 6; // makes tick marks at places that don't cause decimal values @_@
this._graph.setOptions({
dataAxis: {
left: {
range: {
max: maxY,
}
}
}
});

快速说明:行 maxY = maxY < 8 ? ...据我测试,仅适用于 1-11。我不确定更高的数字。不过,希望这个问题能够得到解决。

最佳答案

非常非常晚的答案,但假设您只关心 y 轴标签本身而不是水平网格线,您可以这样做:

var options = {
dataAxis: {
left: {
format: function(value){
// don't show non-integer values on data axis
return Math.round(value) === value ? value : "";
}
}
}
}

您还可以在该函数中访问 window.height 并根据您所描述的行为进行相应调整。

关于javascript - 仅 vis graph2d y 轴整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32978803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com