欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

echarts关系图graph报错

程序员文章站 2022-05-27 10:29:21
...

echarts关系图 报错__focusNodeAdjacency of undefined

// echarts关系图 报错
Uncaught TypeError: Cannot read property '__focusNodeAdjacency' of undefined
    at GraphView.js:184
    at Graph.graphProto.eachEdge (Graph.js:250)
    at ExtendedClass.render (GraphView.js:181)
    at Task.progress (Chart.js:265)
    at doProgress (task.js:219)
    at Task.taskProto.perform (task.js:142)
    at echarts.js:1574
    at ExtendedClass.<anonymous> (Global.js:531)
    at Array.forEach (<anonymous>)
    at each$1 (util.js:295)

在开发数据生态架构时,用到了Echarts的关系图,当时遇到了这个问题,给大家分享一下。

series: [{
		type: 'graph',
		layout: 'none',//是因为设置成了 ‘none’
		draggable: true,
		roam: true,
		focusNodeAdjacency: true,
		......

解决办法:
把layout:'none’改成layout:‘force’,
就好使了。

简单说一下原因:

layout = ’ ’ ;意思为:图的布局。
值得类型为 string

值可选:

‘none’ 不采用任何布局,使用节点中提供的 x, y 作为节点的位置。

‘circular’ 采用环形布局。

‘force’ 采用力引导布局。

具体意思可以去看官网:传送门链接: link.

可以看到当你使用‘none’的时候,你的数据中要包含节点中提供的 x, y值,来作为节点的位置。e.g.

...
var data = {
	"nodes": [{
		"id": "0",
		"name": "简单讲解",
		"itemStyle": null,
		"symbolSize": 19.12381,
		"x": -266.82776,
		"y": 299.6904,
		"attributes": {
			"modularity_class": 0
		},
		"value": 28.685715,
		"label": {
			"show": false
		},
		"category": 0
	}, {
		"id": "1",
		"name": "具体可以去看官网例子Les Miserables",
...

若是你的数据中没有节点的位置值,就会报错:__focusNodeAdjacency of undefined;e.g

var data = {
	nodes: [{
		name: '这样的数据使用 layout:“none,就会报错”',
		category: 0
	}, {
		name: '类似这种数据结构,你就使用 force 采用力引导布局吧',
		category: 0
	},

类似这种数据结构,你就使用 ‘force’ 采用力引导布局吧,
或者’circular’ 采用环形布局。