d3.js同一页面中多个元素的可重用图表

时间:2014-02-28 05:04:45

标签: javascript charts d3.js

我正在开发基于d3.js框架的图表。在Towards Reusable Charts中,他们提出了开发可重用图表的传统方法。

但是我无法理解同一个chart对象如何用于渲染两个不同的svg元素。

例如我们说,

我们有一个图表对象

function chart() {
  var width = 720, // default width
      height = 80; // default height

  function my() {
    // generate chart here, using `width` and `height`
  }

  my.width = function(value) {
    if (!arguments.length) return width;
    width = value;
    return my;
  };

  my.height = function(value) {
    if (!arguments.length) return height;
    height = value;
    return my;
  };

  return my;
}

var chartobject = chart().width(100);

使用相同的chartobject,有两个带有id1,id2的svg元素我想生成并更新图表

d3.select("#id1").data(data).call(chartobject)

d3.select("#id2").data(data).call(chartobject)

我的问题在这里,如果我想在施工后单独update the height of the chart or change any color properties svg#id2,我该怎么办?可能吗?我不想在这里重建。我只是想更新图表的颜色!! 如果我在这里做错了,请纠正我。

1 个答案:

答案 0 :(得分:0)

调用图表时,需要两个不同的图表对象。可以通过在dpois(0.5, lambda = 2) #[1] 0 #Warning message: #In dpois(0.5, lambda = 2) : non-integer x = 0.500000 下声明sum(dpois(0:1000000, lambda = 2)) #[1] 1 .height()来更新高度和宽度

.width()