0

SQL からデータを取り込み、非表示のラベルに保存してから、D3 を散布図として使用して表示します。x 値ラベル、y 値ラベル、半径ラベル、そしてセット ラベルと呼ぶ 4 番目のラベルがあります。

基本的に、7 セットのデータがあり、一度に 1 つだけ表示したい (ユーザーは、ドロップダウンやラジオ ボタンなどから選択して、表示するものを選択できます。簡単です)。D3 で、セット データ = X のポイントのみを表示する方法はありますか?

これまでの私の関連する設定は次のとおりです。

var x_data = $('.CostImport').text().split(',');
var y_data = $('.PriceImport').text().split(',');
var r_data = $('.SalesImport').text().split(',');
var c_data = $('.ZoneImport').text().split(',');

var data = [];

for (i = 0; i < x_data.length; i++) {
   data.push({ "x": x_data[i], "y": y_data[i], "c": c_data[i], "r": r_data[i] });
}


 vis.selectAll("circle")
            .data(data)
                .enter().append("svg:circle")
                    .attr("cx", function (d) { return x(d.x) })
                    .attr("cy", function (d) { return y(d.y) })
                    .attr("stroke-width", "none")
                    .attr("fill", function (d) { return c(d.c) })
                    .attr("fill-opacity", .75)
                    .attr("r", function (d) { return r(d.r) });

現在、データを設定値で色付けしていますが、忙しすぎて重複しています。各セット (x1_data、x2_data など) ごとに個別のラベルとデータを読み込むことができることはわかっていますが、セットの数が変化した場合に備えて、これをより堅牢にしたいと考えていました。

4

1 に答える 1

0

最後の行を次のように変更します。

.attr("r", function (d) { if (d.c == 3) return r(d.r); else return 0 });

完璧に動作します。SQL で時間がかかりすぎて、等号を 2 倍にするのを忘れていました。

于 2012-05-22T13:31:28.993 に答える