2017-09-21 37 views
-1

D3.js(this postに基づく)を使用して極座標プロットを作成しました。ズーム/パンD3.js極座標プロット

ズーム機能とパン機能を追加したいと思います。私は矩形プロットの例を見てきましたが、円形プロットのズーム/パンニングのためのものはありませんでした。

私はちょっと迷っているので、D3を使っているだけの初心者です。誰でも助けたり提案したりできますか?

+0

これまでに達成したことを、たとえばフィドルを使って見せてもらえますか? – 3TW3

+0

確かに:https://jsfiddle.net/8opgjz45/1/ – Steph2a1

+0

私は答えを追加しましたが、私はあなたが目指しているものが完全にはわかりません... – 3TW3

答えて

0

私はあなたの目標が何であるか完全にはわかりませんが、私は以下のことを試しました。

まず、ズーム動作を追加する必要があります。

var zoomBeh = d3.behavior.zoom() 
    .x(r) 
    .y(r) 
    .on("zoom", zoom); 

そして、あなたのSVGにズーム動作を呼び出します:

var svg = d3.select("body").append("svg") 
    .attr("width", width) 
    .attr("height", height) 
    .append("g") 
    .attr("transform", "translate(" + width/2 + "," + height/2 + ")") 
    .call(zoomBeh); 

最後にあなたがズーム機能を確認する必要があり、私はあなたのx等のy方向の両方のためのRスケールを使用しました。

function zoom() { 
    var t = svg.transition().duration(750); 

    svg.selectAll(".point").transition(t) 
    .attr("transform", function(d) { 
     var coors = line([d]).slice(1).slice(0, -1); 
     return "translate(" + coors + ")" 
     }) 
} 

ここにはfiddleが更新されています。それは少し驚異的ですが、なぜ私はまだよく分かりません。

関連する問題