2016-02-09 34 views
5

プロットされたデータに自動的に適合するように軸をオートスケールするためのパラメータがPlotly.jsにありますか?Plotly.js autoscale

シナリオ:最新の30分にわたって温度(y軸)対時間(x軸)をプロットしています。

問題:ページが読み込まれると、グラフに何も表示されません。私は軸を修正しますが、x軸は最新の30分を表示し、毎分更新する必要があります。しかし、「Autoscale」または「Reset Axes」をクリックすると、グラフが完全にデータにフィットします。

質問:「自動スケール」をクリックする必要はなく、ページが読み込まれるときにプロットを自動的に「自動スケール」に設定できますか?ここ

参照アプリ:https://vast-fortress-23871.herokuapp.com/

答えて

4

A本当に愚かなハックはこれを追加することです:

document.querySelector('[data-title="Autoscale"]').click() 

それは自動的にオートスケールボタンをクリックします。より良い方法は、ボタンが実際にどのような機能を呼び出しているのかを突き止めて呼び出すことです。

+0

これは賢明です、ありがとうございます。他のすべてが失敗したら、私はこれを使用します。 – Matte3o

+0

@ Matte3o:JQueryを使っているので、もちろん、より広範なブラウザサポートのために、 'document.querySelector'の代わりに' $ 'を使うことができます。 – damd

0

私は同じ問題を抱えていました。あなたがリンクしたコードは小さくなっていますので、私はそれを読むことはできませんが、ここで私が間違ったことがあります:

plotly.newPlot()すべてのデータがロードされる前に実行されると、データがなく、チェックすることを知らない)。 $.get()が非同期であるため、プロットを作成した後plotdataが移入されることを

例えば

var plotdata = [x:[],y:[],type: 'scatter']; 
$.get('mydata.dat',(x) => {/*put parsed x into plotdata*/}); 
Plotly.newPlot('mydiv',plotdata,layout); 

ノート。

0

私はこの問題を再レイアウトで解決しました。 xaxisとyaxisのautorangeプロパティを 'true'に設定するだけです。両方の軸でオートスケールされます:

// To call when data is ready, after your page loads. 
Plotly.relayout(yourGraph, { 
    'xaxis.autorange': true, 
    'yaxis.autorange': true 
}); 
関連する問題