Plotly.js中是否有参数可自动调整轴以自动拟合绘制的数据?
场景:我在最近的30分钟内绘制温度(y轴)与时间(x轴)的关系图。
问题:页面加载时,图表不显示任何内容。我会修复轴,但x轴需要显示最新的30分钟并每分钟更新一次。但是,当我点击' Autoscale'或者'重置轴',图表完全符合数据!
问题:我可以自动将情节设置为"自动缩放"页面加载时,而不是要求用户点击自动缩放'?
答案 0 :(得分:4)
一个非常愚蠢的黑客是添加这个:
queue
它将自动单击“自动缩放”按钮。更好的方法是找出按钮实际调用的函数,然后调用它。
答案 1 :(得分:0)
我遇到了同样的问题。你链接的代码是缩小的,所以我不能(不会)阅读它,但这是我做错了:
如果plotly.newPlot()
在加载所有数据之前运行,那么它就不会自动调整范围(因为它没有数据,也不知道要检查)。
例如
var plotdata = [x:[],y:[],type: 'scatter'];
$.get('mydata.dat',(x) => {/*put parsed x into plotdata*/});
Plotly.newPlot('mydiv',plotdata,layout);
请注意,创建绘图后会填充plotdata,因为$.get()
是异步的。
答案 2 :(得分:0)
我通过重新布局解决了这个问题。只需在“真实”中设置autorange属性即可。在xaxis和yaxis上。它将在两个轴上自动缩放:
// To call when data is ready, after your page loads.
Plotly.relayout( yourGraph, {
'xaxis.autorange': true,
'yaxis.autorange': true
});
答案 3 :(得分:0)
对我来说,这很完美而且很简单: 。 。 var layout = { xaxis:{ 自动调整范围:是的, showgrid:错误, 零线:false, showline:错误, 等等 }
答案 4 :(得分:0)
对我来说,这非常完美且简单(感谢https://codepen.io/plotly/pen/KpLVzv):
// script comes before
var layout = {
xaxis: {
autorange: true,
showgrid: false,
zeroline: false,
showline: false,
etc.
}
// script comes after