Plotly.js自动缩放

时间:2016-02-09 16:04:16

标签: javascript plotly

Plotly.js中是否有参数可自动调整轴以自动拟合绘制的数据?

场景:我在最近的30分钟内绘制温度(y轴)与时间(x轴)的关系图。

问题:页面加载时,图表不显示任何内容。我会修复轴,但x轴需要显示最新的30分钟并每分钟更新一次。但是,当我点击' Autoscale'或者'重置轴',图表完全符合数据!

问题:我可以自动将情节设置为"自动缩放"页面加载时,而不是要求用户点击自动缩放'?

在此处查看应用:https://vast-fortress-23871.herokuapp.com/

5 个答案:

答案 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