d3.js使用按钮更新条形图工具提示

时间:2016-05-16 02:02:53

标签: javascript d3.js charts tooltip bar-chart

我正在尝试制作四个条形图,使用按钮对我想要显示的那个进行分类。一般情况下,一切都很有效,正如您在code中看到的那样。 但是,现在我尝试添加工具提示[here] [2],并意识到每个图表的数据都不会更新。有谁知道我怎么能这样做?我想在var tip上实现if-else语句来选择正确的按钮:

var tip = d3.tip()
          .attr('class', 'd3-tip')
          .offset([-10, 0])
          .html(function(d) {                                                                            

          if(d3.select("#propertyCategory"))
                       return "No: <strong>" + d.propertyName + "</strong> foram registrados <strong>" + d.vacant + "</strong>";
                                              })

然而,它不起作用,说实话我不明白在这种情况下如何正确实施选择,我在d3.js中有点不知所措,所以我不知道可以做些什么解决这个问题。

1 个答案:

答案 0 :(得分:0)

可能你可以有一个变量

  var selected = "ano2009";//set it to default value

现在每当更改年份时,都会更改所选变量。

像这样:

d3.select("#vacant")
    .on("click", function() {
        selected = "vacant";
        //Update scale domain

像这样:

   d3.select("#totalUnits")
        .on("click", function() {
           selected = "totalUnits";

......等等

现在在tip功能中你可以这样做:

var tip = d3.tip()
                                                  .attr('class', 'd3-tip')
                                                  .offset([-10, 0])
                                                  .html(function(d) {

 //note d[selected] will select the clicked year data.                                                  
  return "No: <strong>" + d.propertyName + "</strong> foram registrados <strong>" + d[selected] + "</strong>";
                                                  })

工作代码here