0

我从 SQL 中引入数据并将其存储在隐藏标签中,然后使用 D3 作为散点图进行显示。我有一个 x 值标签、y 值标签、半径标签,然后是第四个标签,我们称之为集合标签。

基本上,我有七组数据,并且希望一次只显示一组(用户可以从下拉菜单或单选按钮中进行选择,或者选择要显示的一组,这很容易)。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 时间让我忘记了双等号。

于 2012-05-22T13:31:28.993 回答