Верхний график сети с подсказкой при наведении на каждый узел - PullRequest
0 голосов
/ 05 мая 2019

Я создаю сетевые графики с использованием высоких диаграмм для одного из моих проектов Angular.Я хочу создать всплывающую подсказку, когда мышь перемещается к точке / узлу.Я попытался создать, используя параметры диаграммы ниже.Но я получаю ошибку.Как создать всплывающую подсказку для точек сетевого графика?

 chartOptions = {
  chart: {
    type: "networkgraph",
    height: "100%"      
  },
  title: {
    text: "Network graph demo"
  },
  subtitle: {
    text: "A Force-Directed Network Graph in Highcharts"
  },
  plotOptions: {
    networkgraph: {
      keys: ["from", "to"],
      layoutAlgorithm: {
        enableSimulation:true
      }
    }

  },
  series: [
    {
      dataLabels: {
        enabled: true,            
        linkFormat: ''          
      },
      data: [{from : 'a', to: 'b'},
              {from: 'a', to: 'c'},
               {from: 'a', to: 'd'} ],
      marker : {radius : 18}
    }

  ],
  tooltip :
   {
    enabled : true, 
    formatter : { function() {
      return "<div> <span> My tooltip information </span> </div>"
    }}
  }
}

Ошибка:

 ERROR TypeError: w.call is not a function
at a.Tooltip.refresh (highcharts.js:205)
at a.Pointer.runPointActions (highcharts.js:220)
at q.onMouseOver (highcharts.js:446)
at SVGGElement.d [as __zone_symbol__ON_PROPERTYmouseover] (highcharts.js:435)
at SVGGElement.wrapFn (zone.js:1332)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)
at Object.onInvokeTask (core.js:17290)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:422)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:195)
at ZoneTask.push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (zone.js:498)

Ответы [ 2 ]

1 голос
/ 05 мая 2019

Я думаю, что проблема может быть в chartOptions.

Во-первых, я реализовал кавычки для ключей и значений и заменил одинарные кавычки на двойные.

Во-вторых, я думаю, что он ожидаетфункция, а не объект для formatter;поэтому из этого:

"formatter" : {function() {
      return "<div> <span> My tooltip information </span> </div>"
    }}

я изменился на:

"formatter" : function() {
      return "<div> <span> My tooltip information </span> </div>"
    }

Вот все, что нужно очистить:

chartOptions = {
  "chart": {
    "type": "networkgraph",
    "height": "100%"      
  },
  "title": {
    "text": "Network graph demo"
  },
  "subtitle": {
    "text": "A Force-Directed Network Graph in Highcharts"
  },
  "plotOptions": {
    "networkgraph": {
      "keys": ["from", "to"],
      "layoutAlgorithm": {
        "enableSimulation":true
      }
    }

  },
  "series": [
    {
      "dataLabels": {
        "enabled": true,            
        "linkFormat": ""          
      },
      "data": [{"from" : "a", "to": "b"},
              {"from": "a", "to": "c"},
               {"from": "a", "to": "d"} ],
      "marker" : {"radius" : 18}
    }

  ],
  "tooltip" :
   {
    "enabled" : true, 
    "formatter" : function() {
      return "<div> <span> My tooltip information </span> </div>"
    }
  }
}

Попробуйте и дайте мнезнать, если продолжает делать то же самое.

Если бы вы могли поместить это в Snipped, предоставляемый переполнением стека, было бы легче попытаться помочь.Подрезанный значок: enter image description here

1 голос
/ 05 мая 2019

подсказка кажется неправильной. (дополнительные фигурные скобки)

попробуйте этот код:

 tooltip :
   {
    enabled : true, 
    formatter : function() {
      return "<div> <span> My tooltip information </span> </div>"
    }
  }
...