Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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_Pie Chart - Fatal编程技术网

Javascript 如何在D3.js中更改鼠标上方饼图的其他部分?

Javascript 如何在D3.js中更改鼠标上方饼图的其他部分?,javascript,d3.js,pie-chart,Javascript,D3.js,Pie Chart,现在,在鼠标悬停时,该段将改变其不透明度。如何使其他线段更改其不透明度,但不更改此不透明度?在纯Javascript中。您可以使用数组过滤器函数查找其他饼图切片 filter方法创建一个包含所有通过的元素的新数组 由提供的函数实现的测试 代码: 变量json_数据=[{ 性别:男,, 姓名:特德, 年龄:23 }, { 性别:男,, 姓名:马克,, 年龄:33 }, { 性别:女 姓名:玛丽, 年龄:32 }, { 性别:男,, 姓名:Valery, 年龄:26 }, { 性别:女 姓名:奥尔

现在,在鼠标悬停时,该段将改变其不透明度。如何使其他线段更改其不透明度,但不更改此不透明度?在纯Javascript中。

您可以使用数组过滤器函数查找其他饼图切片

filter方法创建一个包含所有通过的元素的新数组 由提供的函数实现的测试

代码:

变量json_数据=[{ 性别:男,, 姓名:特德, 年龄:23 }, { 性别:男,, 姓名:马克,, 年龄:33 }, { 性别:女 姓名:玛丽, 年龄:32 }, { 性别:男,, 姓名:Valery, 年龄:26 }, { 性别:女 姓名:奥尔加, 年龄:29 }, { 性别:男,, 姓名:约翰, 年龄:26 }]; 可变宽度=960, 高度=500, 半径=数学最小宽度,高度/2; var color=d3.scale.ordinal .范围[98abc5、8a89a6、7b6888、6b486b、a05d56、d0743c、ff8c00]; var percentageFormat=d3.format%; var arc=d3.svg.arc .外部半径-10 .内半径0; var pie=d3.layout.pie 索特努尔先生 .价值函数{ 返回d值; }; var svg=d3.selectbody.appendsvg .宽度,宽度 .身高,身高 .附录 .attransform,translate+宽度/2+,+高度/2+; //d3.jsonstaff3.json,functionerror,json_数据{ var数据=d3.1 .keyfunctiond{ 返回d.sex; } .ROLLUP函数{ 返回d.length; }.entriesjson_数据; data.foreachd函数{ d、 百分比=d.values/json_data.length; }; console.logdata变量,数据; console.logpiedata,piedata; var g=svg.selectAll.arc .datapiedata .enter.appendg .arc类 .on'mouseover',函数{ 无功电流=此; var others=svg.selectAll.arc.FilterFunction{ 返回此!=当前 }; 选择AllPath.style'opacity',0.8; } .on'mouseout',函数{ 无功电流=此; d3.选择这个 .style'opacity',1; var others=svg.selectAll.arc.FilterFunction{ 返回此!=当前 }; 选择AllPath.style'opacity',1; } g、 附录路径 .attrd,arc .stylefill,函数,i{ 返回颜色i; }; g、 附录文本 .attr转换,函数{ 返回平移+圆弧.centroidd+; } .attrdy,.35em .styletext定位符,中间 .textfunctiond{ console.logd是,d; 返回percentageFormatd.data.percentage; }; //};
我的代码在这里:我试图添加这个示例中的代码:但它不起作用。
var g = svg.selectAll(".arc")
    .data(pie(data))
    .enter().append("g")
    .attr("class", "arc")
    .on('mouseover', function() {
        var current = this;
        var others = svg.selectAll(".arc").filter(function(el) {
            return this != current
        });
        others.selectAll("path").style('opacity', 0.8);
    })
    .on('mouseout', function() {
        var current = this;
        var others = svg.selectAll(".arc").filter(function(el) {
            return this != current
        });
        others.selectAll("path").style('opacity', 1);
    });