微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

D3 按钮输入更改数据堆积条形图

如何解决D3 按钮输入更改数据堆积条形图

我正在做一个项目,我正在制作多个 D3 堆积条形图。这个想法是,当按下按钮时,绘图将使用不同的数据集重新加载,类似于显示代码 here

我的问题是修改代码以使条形图堆叠。我不太熟悉 D3 中的更新功能(我从未了解过它),所以我一直试图将更多的“rect”对象附加到“u”变量中。它会在第一次正确加载(包含我期望的所有“rect”对象),但是每当在按钮上调用 update 方法时,单击所有绘制的都是附加“rect”调用的第二次迭代。如果有人知道如何将此代码用于堆叠条形图功能,我将不胜感激。

作为参考,这是我一直在尝试的

  u
    .enter()
    .append("rect") // Add a new rect for each new elements
    .merge(u) // get the already existing elements as well
    .transition() // and apply changes to all of them
    .duration(1000)
      .attr("x",function(d) { return x(d.group); })
      .attr("y",function(d) { return y(d.value1); })
      .attr("width",x.bandwidth())
      .attr("height",function(d) { return height - y(d.value1); })
      .attr("fill","#69b3a2")
  u
    .enter()
    .append("rect") // Add a new rect for each new elements
    .merge(u) // get the already existing elements as well
    .transition() // and apply changes to all of them
    .duration(1000)
      .attr("x",function(d) { return y(d.value2 + d.value1); })
      .attr("width","#69b3a2")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。