2016-12-02 28 views
0

ライブデータをストリーム化するplotly.jsダッシュボードがあります。ライブデータストリームの部分は完全にうまく動作しますが、データが入ると同時にすべてのトレースをアニメートしたいと思います。しかし、一度に1つ以上のトレースをアニメートすることはできませんPlotly.animateに渡します。私は自分のウェブサイトからコードを使ってこの問題を再現しました。plotly.jsアニメーションAPIで複数のトレースをアニメ化

<html> 
<head> 
    <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> 
</head> 

<body> 
    <div id="graph"></div> 
    <button onclick="javascript:randomize();">Randomize!</button> 
</body> 

<script> 
Plotly.plot('graph', [{ 
x: [1, 2, 3], 
y: [0, 0.5, 1], 
line: {simplify: false}, 
}, 
{ 
x: [3, 2, 1], 
y: [0, 0.5, 1], 
line: {simplify: false} 
}]); 

function randomize() { 
    Plotly.animate('graph', { 
    data: [{y: [Math.random(), Math.random(), Math.random()]}], 
    traces: [0,1], 
    layout: {} 
    }, { 
    transition: { 
    duration: 500, 
    ease: 'cubic-in-out' 
    } 
    }) 


    }</script> 
    </html> 

私はそれをトレースを渡していても[0,1]それだけでその配列の最初のトレースをアニメーション化することを確認して!私はこの問題を解決する文書を見つけることができませんでした。

答えて

0

私は答えを見つけました。問題は、私がPlotly.animateに渡していたデータで、1つのトレースの更新された情報しか持たないという問題でした。誰もが思っていた場合はここで

は、作業コードです:

<html> 
<head> 
    <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> 
</head> 
<body> 
    <div id="graph"></div> 
    <button onclick="javascript:randomize();">Randomize!</button> 
</body> 

<script> 
Plotly.plot('graph', [{ 
    x: [1, 2, 3], 
    y: [0, 0.5, 1], 
    line: {simplify: false}, 
}, 
{ 
    x: [3, 2, 1], 
    y: [0, 0.5, 1], 
    line: {simplify: false} 
}]); 

function randomize() { 
    Plotly.animate('graph', { 
    data: [{y: [Math.random(), Math.random(), Math.random()]}, {y: [Math.random(), Math.random(), Math.random()]}], 
    traces: [0,1], 
    layout: {} 
    }, { 
    transition: { 
     duration: 500, 
     ease: 'cubic-in-out' 
    } 
    }) 


}</script> 
</html> 
関連する問題