D3.js 如何在D3中使用Opentip

D3.js 如何在D3中使用Opentip,d3.js,opentip,D3.js,Opentip,我试图在一个使用D3.js映射数据的程序中利用Opentip.js中的功能集 我不知道如何将新的Opentip对象绑定到构成地图的未命名元素 下面是一段代码摘录,说明了我所采用的方法: <script type="text/javascript"> var dataset = [[4,2,'Bob'], [5,7,'Sally'], [2,2,'Marvin']]; var width = 38; var height = 38; var margin = 20; function

我试图在一个使用D3.js映射数据的程序中利用Opentip.js中的功能集

我不知道如何将新的Opentip对象绑定到构成地图的未命名元素

下面是一段代码摘录,说明了我所采用的方法:

<script type="text/javascript">
var dataset = [[4,2,'Bob'], [5,7,'Sally'], [2,2,'Marvin']];
var width = 38;
var height = 38;
var margin = 20;

function giveX(d) { return d[0] * width + margin }
function giveY(d) { return d[1] * height + margin }

var mapdiv = d3.select("#map")
    .append("svg")
    .attr("height", 680)
    .attr("width", 980)
    .style('border', '1px solid black')

var pips = mapdiv.selectAll("circle")
    .data(dataset)
    .enter().append("circle")
        .style("fill", "red")
        .style("stroke", "black")
        .attr("cx", function(d) {return giveX(d)})
        .attr("cy", function(d) {return giveY(d)})
        .attr("r", width/2)
</script>   
Opentip对象的构造函数只需要我提供一个元素标识符,但我不清楚如何引用动态创建的circle元素


我尝试在selectAll调用中添加代码,但没有成功。

下面是一个使用data ot属性的快速示例:

var svg=d3。选择“body” .append'svg' .attr'width',200 .attr'height',200; svg.selectAll'circle' .数据3.10 进来 .附加“圆圈” .attr'cx',函数d{return Math.random*200} .attr'cy',函数d{return Math.random*200} .attr'r',10 .样式“填充”、“钢蓝色” .attrat数据,函数d,i{ 返回圈+i; };
下面是一个使用data ot属性的快速示例:

var svg=d3。选择“body” .append'svg' .attr'width',200 .attr'height',200; svg.selectAll'circle' .数据3.10 进来 .附加“圆圈” .attr'cx',函数d{return Math.random*200} .attr'cy',函数d{return Math.random*200} .attr'r',10 .样式“填充”、“钢蓝色” .attrat数据,函数d,i{ 返回圈+i; };
我不认为OpenTip可以针对SVG元素。此外,它使用画布进行渲染,这也会与SVG映射冲突。您可能想使用instead实际上,提供的示例非常有效。我熟悉D3技巧,但特别想使用Opentip的功能。事实证明有两种方法可以解决这个问题。我不认为OpenTip可以针对SVG元素。此外,它使用画布进行渲染,这也会与SVG映射冲突。您可能想使用instead实际上,提供的示例非常有效。我熟悉D3技巧,但特别想使用Opentip的功能。事实证明有两种方法可以解决这个问题。