強制的なネットワークのノードをクリックして棒グラフの内容を更新しようとしています。現在、メインパネルで "mousemove"イベントを使用して、どのアクティブな行にアクセスするかを通知する変数activeNodeを更新する "ポイント"イベントを使用しようとしています。私は、メインパネルからの私のポイントイベントがactiveNodeを更新せず、常にそのデフォルト値に設定されているという事実に問題があります。これで修正を探してみようとしましたが、もっと基本的な概念が欠けていると思います。ここで強制的なネットワークのノードをクリックして外部の棒グラフを更新する方法
がコードです...
var w = document.body.clientWidth,
h = document.body.clientHeight,
colors = pv.Colors.category19(),
activeNode = 0;
var vis = new pv.Panel()
.width(w)
.height(h)
.fillStyle("white")
.event("mousemove", pv.Behavior.point(Infinity));
var force = vis.add(pv.Layout.Force)
.width(w-200)
.nodes(miserables.nodes)
.links(miserables.links);
force.link.add(pv.Line);
force.node.add(pv.Dot)
.def("o",-1)
.size(function(d) (d.linkDegree + 10) * Math.pow(this.scale, -1.5))
.fillStyle(function(d) d.fix ? "brown" : colors(d.group))
.strokeStyle(function() this.fillStyle().darker())
.lineWidth(1)
.title(function(d) this.index)
.event("mousedown", pv.Behavior.drag())
.event("drag", force)
.event("point", function() {activeNode = this.index; return vis;});
vis.add(pv.Label).top(20).left(w/2).text("activeNode = " + activeNode);
vis.add(pv.Bar)
.data(topw[activeNode].splice(0))
.top(function(d) this.index * 30)
.left(w-80)
.width(15)
.height(20)
.anchor("left").add(pv.Label)
.textAlign("right")
.text(function(d) d[0]);
vis.render();
ありがとうございます - あなたは多かれ少なかれprotovisマスターです私はこれらの質問の多くであなたを見ます。 – shigeta
@shigeta - 私はあなたの他のProtovisの質問に答えるためにあなたの恥知らずの努力を見ます:)。明らかにそれは働いた - 賞賛のための1つをスコアする。 – nrabinowitz