如何在从json读取的d3.js中为矩形添加工具提示

时间:2014-01-17 12:22:16

标签: d3.js tooltip

我想创建矩形并提供相同的工具提示。

我的json数据是:

[
   [{ "a":10},{"b":11}],
   [{ "c":1},{"d":1}]
]

我的代码是:

var svggraph = d3.select("#graph").append("svg").attr("id","svggraph")
    .attr("width", 400)
    .attr("height", 300)
    .append("g")
    .attr("transform", "translate(50," + margin.top + ")");

var yvar = 20;
var x_axis = 1;

d3.json("Data.json", function(data) 
    {
        rectdata = data;

        for(x=0;x<rectdata.length;x++)
        {

          console.log(rectdata[x]);
          for (index=0;index<2; index++)
          {
            svggraph.append("rect")
                              .attr("x", setxaxis(index)) 
                              .attr("y", setyaxis(yvar))
                              .attr("width", 20)
                              .attr("height", 21)
                              .style("fill","white")    
                              .style("stroke","black");
                  svggraph.append("svg:title").text(function(d) { return "Tooltip"; });

          }

            yvar = yvar+21;
        }



    });



function setxaxis(x)
{


    if (x==4) return;

    if(x==0) 
    {
        return x_axis=0
    }
    else
    {
        x_axis=x_axis+25;
    }

    return x_axis; 

}
function setyaxis(y)
{

    return y; 


}

如何在相应矩形上创建的2X2矩形阵列上添加“a:10”或“b:11”等工具提示?

1 个答案:

答案 0 :(得分:6)

在SVG中添加工具提示的最简单方法是在要显示工具提示的元素上附加title元素(请参阅例如this question)。

在您的代码中,这看起来像这样。

svggraph.append("rect")
  // set attributes
  .append("title")
  .text(function(d) { return "Tooltip"; });