提取工具提示的值

问题描述 投票:1回答:1

这是我以前在泡沫图表上的帖子的延续,我一直在努力。我通过改编Chris Tufts的代码达到了我想要的效果:

https://blockbuilder.org/lydiawawa/347e2b0aeed51d7dc56fde40b08e5fcd

但是,当我尝试添加工具提示时,我无法提取BMI和Race的原始值(在代码中,BMI = size和Race = group)这是因为.data调用节点而不是原始数据。有谁知道如何指出工具提示以获取正确的值?

我知道我应该在create_node函数中定义组和大小,如下所示,但是我收到了一个意外的var令牌错误。

function create_nodes(data,node_counter) {
  var i = cs.indexOf(data[node_counter].group),
  var z = cs.data[node_counter].group,
  var s = cs.data[node_counter].size,
      r = Math.sqrt((i + 1) / m * -Math.log(Math.random())) * maxRadius,
      d = {
        cluster: i,
        z,
        s,
        radius: radiusScale(data[node_counter].size)*1.5,
        text: data[node_counter].text,
        x: Math.cos(i / m * 2 * Math.PI) * 200 + width / 2 + Math.random(),
        y: Math.sin(i / m * 2 * Math.PI) * 200 + height / 2 + Math.random()
      }

  if (!clusters[i] || (r > clusters[i].radius)) clusters[i] = d;
   console.log(d);
  return d;
};
javascript d3.js tooltip data-visualization
1个回答
1
投票

您可以像创建size一样轻松地创建group属性:

size: data[node_counter].size,

顺便说一句,你在group中有一个语法错误(你错过了冒号),它应该是:

group: data[node_counter].group,

这是你更新的bl.ocks:https://bl.ocks.org/GerardoFurtado/5802f23a0bd1c4a3f94f95eded56bc97/dc36321d0d4bb7db2a44246f9330f22099276524


PS:作为一个友好的建议,你不需要那个繁琐的功能。只需更改data数组并将其直接传递给布局。

© www.soinside.com 2019 - 2024. All rights reserved.