Извлечение значений для всплывающей подсказки - PullRequest
1 голос
/ 28 апреля 2019

Это продолжение моих предыдущих постов на пузырьковой диаграмме, которые я пытался создать. Я достиг желаемого эффекта, адаптировав код Криса Тафтса:

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

Однако, когда я пытаюсь добавить всплывающую подсказку, я не могу извлечь исходное значение BMI и Race (В коде BMI = размер и 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;
};

1 Ответ

1 голос
/ 28 апреля 2019

Вы можете легко создать свойство size так же, как вы создали group one:

size: data[node_counter].size,

Кстати, у вас есть синтаксическая ошибка (вам не хватает двоеточия) в group, которая должна быть:

group: data[node_counter].group,

Вот ваши обновленные bl.ocks: https://bl.ocks.org/GerardoFurtado/5802f23a0bd1c4a3f94f95eded56bc97/dc36321d0d4bb7db2a44246f9330f22099276524


PS: как дружеский совет, вам не нужна эта громоздкая функция. Просто измените массив data и передайте его непосредственно в макет.

...