当前位置: 首页 > 知识库问答 >
问题:

D3 退出().删除() 在堆积面积图上

蔚宏大
2023-03-14

我在我正在创建的堆积面积图中的exit().remove()函数中遇到了一些问题。

JS在这里:链接

我有一些功能,用户可以通过单击图例矩形/颜色来启用/禁用图表中的数据。我知道数据正在根据控制台消息和Y轴变化刻度进行更新,但图表中的数据不会更改。例如,如果用户取消选择“失败”类别,橙色图层应消失,“失败”和“通过”图层应重新调整。

问题似乎出现在小提琴的第 214 行到第 234 行,特别是在我调用 exit().remove() 的地方:

// filter the data
var updatedData = dataSeries.filter(function(d) {
    if(d.vis === "1"){
        return d;
    }
    else {
        return null;
    }
});

stack.values(function(d) { return d.values; });

layer = stack(updatedData);

main_layer.selectAll(".layer")
    .data(layer);

main_layer
    .attr("d", function(d) { return main_area(d.values); });

main_layer.exit().remove();

我得到的错误是对象[对象数组]没有方法退出我尝试过将selectAll更改为只是一个选择,但这也会产生相同的错误。提前谢谢。

共有1个答案

澹台季萌
2023-03-14

我终于把它修好了。下面的代码正确地更新了层:

// filter the data
var updatedData = dataSeries.filter(function(d) {
    if(d.vis === "1"){
        return d;
    }
    else {
        return null;
    }
});

stack(updatedData);

var sel = main_layer.select(".layer");

sel
    .attr("class", function(d) { return d.key + " layer"; })
    .style("fill", function(d, i) { 
        if(d.vis === "1") {
            return z(i);   
        }
        else return null;
    })
    .attr("d", function(d) { 
        if(d.vis === "1") {
            return main_area(d.values); 
        }
        else return null;
    });
 类似资料:
  • StackedArea Chart是区域图的变体,显示每个值的贡献趋势(例如 - 加班)。 堆叠区域使每个系列相邻,但不与前面的系列重叠。 这与区域图表形成对比,其中每个系列覆盖前面的系列。 以下是描绘人口增长的堆积图表。 在JavaFX中,堆积区域图表由名为StackedAreaChart的类StackedAreaChart 。 该类属于包javafx.scene.chart 。 通过实例化此类

  • 面积图包括普通的面积图(area)及面积范围图(arearange),根据面积连接线的不同,又可以分为直线面积图(area、arearange)和曲线面积图(areaspline 及 areasplinerange)。 一、面积图 图4-3 Highcharts 面积图 面积图相关的配置参考 API 文档: 面积图配置:针对当前数据列有效 面积数据列配置 :针对当前页面的所有面积数据列有效 1、曲

  • $config = ['path' => './tests']; ​ $fileObject = new \Vtiful\Kernel\Excel($config); ​ $fileObject = $fileObject->fileName('tutorial.xlsx'); $fileHandle = $fileObject->getHandle(); ​ $chart = new \Vtif

  • StackedBarChart是BarChart的变体,它绘制了指示类别数据值的条形图。 条形可以是垂直的或水平的,这取决于哪个轴是类别轴。 每个系列的栏位于上一系列的顶部。 以下是堆积条形图,描绘了人口增长。 在JavaFX中,堆积条形图由名为StackedBarChart的类StackedBarChart 。 该类属于包javafx.scene.chart 。 通过实例化此类,您可以在Java

  • 我已经开始使用图表v2的最新测试版。js,因为我需要在同一个图表上绘制一个包含堆叠条形图和非堆叠折线图的图表。以下是我需要的示例: 在此图表中,线条没有堆叠在一起,并且都显示了它们的自然值,但是条形图是堆叠在一起的,并且显示了这些值的组合总和(包括一些负值)。 我已经成功地将两个图表绘制在一起,但到目前为止,我只成功地将这两个图表堆叠起来,或者我不得不使用两个单独的y轴,最终得到两个刻度。这里有一

  • 我有以下数据集,并使用Matplotlib绘制了一个堆叠条形图。 以下是生成图形的代码: 我需要注释图形中的值。例如,我需要每个条的值出现在图形的条内。请参阅下面的示例