Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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.js图表调用并在缩放后重新绘制区域_Javascript_D3.js - Fatal编程技术网

Javascript D3.js图表调用并在缩放后重新绘制区域

Javascript D3.js图表调用并在缩放后重新绘制区域,javascript,d3.js,Javascript,D3.js,我是d3.js的新手。我使用一些数据制作了多折线图,并且该图具有缩放功能,效果非常好。现在,我想对底线下方的区域进行着色,我使用了以下代码:- var area = d3.svg.area() .x(function(d) { return x(d.x); }) .y0(height) .y1(function(d) { return y(d.y); }); svg.append("path") .datum(dataBelowLine) .attr("

我是d3.js的新手。我使用一些数据制作了多折线图,并且该图具有缩放功能,效果非常好。现在,我想对底线下方的区域进行着色,我使用了以下代码:-

var area = d3.svg.area()
    .x(function(d) { return x(d.x); })
    .y0(height)
    .y1(function(d) { return y(d.y); });

svg.append("path")
    .datum(dataBelowLine)
    .attr("class", "areaAbove")
    .attr("d", area);
现在,由于我有缩放和拖动功能,我希望填充区域也能在图表缩放或拖动时更新。基本上,我想下面的最后一行区域填充,即使在缩放或拖动以及

以下是缩放功能:-

function zoomed() {
        svg.select(".areaAbove").call(area);

        svg.select(".x.axis").call(xAxis);
        svg.select(".y.axis").call(yAxis);  

        svg.selectAll('path.line').attr('d', line);  

        points.selectAll('circle').attr("transform", function(d) { 
            return "translate(" + x(d.point.x) + "," + y(d.point.y) + ")"; }
        );  
    }

您需要更新缩放功能处理程序中的area
d
属性:

function zoomed() {
  svg.select(".areaAbove").call(area);

  svg.select(".x.axis").call(xAxis);
  svg.select(".y.axis").call(yAxis);

  svg.selectAll('path.line').attr('d', line);

  svg.select('.areaAbove').attr('d', area); //<-- add this!

  points.selectAll('circle').attr("transform", function(d) {
    return "translate(" + x(d.point.x) + "," + y(d.point.y) + ")";
  });
}

更新。

哇!成功了!不幸的是,我需要更多的代表投票支持你的答案!!这就是我想要的!你能帮我解答这个问题吗??
svg.append("path")
  .datum(dataBelowLine)
  .attr("class", "areaAbove")
  .attr("d", area)
  .attr("clip-path", "url(#clip)");