参考这篇文章的博客。
谢谢博主!!!!非常感谢博主分享源码!!!
博主的文章,大家都去观摩!!!
原博主的项目链接:https://github.com/Sjyzheishuai/Neo4j-visualization
连接自己的数据,做可视化,做的过程中遇到了如下问题:
问题①:怎么总是不出图呢?
原博主的代码取得是name作为关系的连接条件,但是发现自己的数据name有重复值,可能识别不出来,所以一直不出图。因为自己的数据有一个id,(自己编好的,并且关系也是通过id确定开始和结尾的),所以修改了代码,改成了取id。
问题②:原博的搜索语句,限制了标签,因为我的标签相对较多,所以修改了下语句。
问题③:搜索的时候同样遇到问题,假如有同名的怎么办?
那就循环遍历呗。
问题④:怎么改变不了下面的框框节点的大小呀symbolSize?
因为原博同时定义了全局变量和局部变量哈哈哈哈哈,最后是局部变量起作用了,就修改了下。
问题⑤:节点的类型太多了,可以自行修改颜色哈哈哈哈
问题⑥:设置了提示框!!可以显示节点的属性内容。(原博主的提示框好像没有起啥作用)
问题⑦:如何获取关系的属性内容呢??
反正就是尝试,不断细分查看类型,最后取到想要的内容。
reps = graph.run('match(n)<-[r]->(m) where n.name = "甲" return r').data()
for r in reps:
print(r) #每一个r都是字典格式,并且都只有一个键 r
#内容是有开始节点、结束节点、还有关系的属性(最后一个是)
# {'r': 阴阳(Node('天干', id='54', name='……', 原文='……', 定义='……'),
# Node('阴阳', id='95', name='……', 原文='……', 定义='……'),
# 原文='……')}
# print(type(r))
# print(r.keys())
那么如何取到属性的值呢??
print(type(r['r'])) #<class 'py2neo.data.阴阳'>
print(r['r']['原文'])
问题⑧:原博主的一个地方写的巨好!就是为什么搜索图谱,用的link是全部的link1,而非link2。
但是后续展示关系的属性内容就出问题了,web死活不显示关系的属性内容(/(ㄒoㄒ)/~~),因为我只对搜索的link2获取了关系的属性,所以web不显示,改成link2即可。
问题⑨: formatter: function (x) 里面,假如想要使用if函数,格式如下:
formatter: function (x) {
console.log(x) // 当我们想要自定义提示框内容时,可以先将鼠标悬浮的数据打印出来,然后根据需求提取出来即可
if (x.dataType=="node"){
var * = *
return
}
else if (x.dataType=="edge"){
var * = *
return
}
},