0

我有下面的代码来显示图表

        d3.json("dat.csv", function(error, data) {


        Data.forEach(function(d) {

            d.Data = parseDate(d.Data);
            d.Free = +d.Free;

        });

这是从所有主机中选择数据,我想限制它选择数据。字段将包含所有主机名。怎么把数据查出来?请帮忙

4

1 回答 1

0

您可以在收到 d3.json 响应后过滤您的数据。为了清楚起见,我创建了一个新变量(host1Data):

d3.json("dat.json", function(error, data) {

    var host1Data = data.filter(function(d){
                        return d.host.name === 'host1';
                    });

    host1Data.forEach(function(d) {

        d.Date.Time = parseDate(d.Date.Time);
        d.CPU.Free = +d.CPU.Free;

    });

    // Use host1Data instead of data in the rest of your code
});

或者,您也可以在使用 javascript 的 filter 函数将数据传递给 svg 时对其进行过滤:

var mychart = svg.selectAll(".mychart")
  .data(data.filter(function(d){return d.host.name === 'host1'})
.enter().append("g")
  .attr("class", "mychart");

或者使用 d3 的过滤功能:

var mychart = svg.selectAll(".mychart")
  .data(data)
.enter().append("g")
  .filter(function(d){return d.host.name === 'host1'}
  .attr("class", "mychart");
于 2016-02-10T04:15:02.153 回答