Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按数据值选择要与D3一起显示的数据_Javascript_Sql_Asp.net_D3.js_Visualization - Fatal编程技术网

Javascript 按数据值选择要与D3一起显示的数据

Javascript 按数据值选择要与D3一起显示的数据,javascript,sql,asp.net,d3.js,visualization,Javascript,Sql,Asp.net,D3.js,Visualization,我从SQL中引入数据并将其存储在隐藏标签中,然后使用D3作为散点图显示。我有一个x值标签,y值标签,半径标签,然后是第四个标签,我们称之为集合标签 基本上,我有七组数据,一次只显示一组,用户可以从下拉列表或单选按钮中选择要显示的数据,这很简单。D3中有没有一种方法可以说只显示集合数据=X的点 以下是我目前的相关设置: var x_data = $('.CostImport').text().split(','); var y_data = $('.PriceImport').text().spl

我从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_数据、x2_数据等等。。。。但我希望在集合数量发生变化的情况下使其更加健壮。

将最后一行更改为:

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

工作完美。SQL中太多的时间使我忘记了双等于。

作为更新,我修改了最后一行,试图只提取第三个集合:.attrr,函数d{if d.c=3 return rd.r;return 0};但我还是看到了所有的场景。