随着互联网不断的发展,传统的关系型数据库如oracle,mysql已经难以支撑现下大数据量,高并发的场景了。于是,NoSQL横空出世,有像cassandra这样的column-based,像MongoDB这样document-based。今天在这里猎奇的是一个graph-based的数据库,Neo4j。
Neovis.js将
JavaScript
可视化和Neo4j无缝集成。与Neo4j的连接非常简单明了,并且由于它是在Neo4j的属性图模型的基础上构建的,因此 Neovis 的数据格式与数据库保持一致。
之所以使用Neovis.js来实现图谱的加载,是因为后台使用的是Neo4j数据库,在前端正好有对应的js插件可以直接根据后端数据库的数据生成图谱,不需要后台再去进行一些数据的转换,从而生成节点和边的数据再返回前端,前端再用echarts去实现。这样就复杂了。
一、效果:
二、使用Neovis.js:
这里只讲前端的使用操作,前提是后端已经创建了neovis数据库服务
(1)首先,现在git上下载Neovis.js
https://github.com/neo4j-contrib/neovis.js
(2)下载完成之后就是如下目录
(3) 将dist目录下的neovis.js以及neovis.js.map文件复制出来
(4)粘贴到你的vue项目的static文件夹下
(5)然后在index.html目录下引入neovis.js,jquery没有引入的话,也需要引入,他会用到jquery
<script src="./static/js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="./static/neovis.js"></script>
(6)然后就是neovis的vue页面,里面一共四个地方需要修改,已经标注。其他的直接复制就行
<template>
<div class="myDiv">
<div id="viz"></div>
Cypher query: <textarea rows="4" cols=50 id="cypher"></textarea><br>
<input type="submit" value="Submit" id="reload" @click="submit">
<input type="submit" value="Stabilize" id="stabilize" @click="stabilize">
</template>
<script>
export default {
name: '',
components: {},
props: {},
data() {
return {
viz: {} //定义一个viz对象
mounted() { this.draw() }, //渲染
methods: {
submit() {
var cypher = $("#cypher").val();
if (cypher.length > 3) {
this.viz.renderWithCypher(cypher);
} else {
console.log("reload");
this.viz.reload();
stabilize() {
this.viz.stabilize();
draw() {
var config = {
container_id: "viz",
server_url: "后端neo4j的地址",
server_user: "neo4j用户名,一般是neo4j",
server_password: "neo4j密码",
labels: {
//"Character": "name",
"Character": {
"caption": "name",
"size": "pagerank",
"community": "community"
//"sizeCypher": "MATCH (n) WHERE id(n) = {id} MATCH (n)-[r]-() RETURN sum(r.weight) AS c"
relationships: {
"INTERACTS": {
"thickness": "weight",
"caption": false
//查询节点的语句,写成你们的
initial_cypher: "match (n)-[r]->(m) return n,r,m;"
this.viz = new NeoVis.default(config);
this.viz.render();
console.log(this.viz);
</script>
<style lang="less" scoped>
.myDiv {
width: 800px;
height: 800px;
textarea {
border: 1px solid lightgray;
margin: 5px;
border-radius: 5px;
#viz {
width: 100%;
height: 80%;
border: 1px solid #f1f3f4;
font: 22pt arial;
input {
border: 1px solid #ccc;
</style>
完成。。缺点就是自己定义的用户名和密码都暴露在html中,不安全。
想要原生实现的参考博主:
Neo4j前端可视化组件Neovis.js使用说明_牧野渔樵的博客-CSDN博客_neovis.js
随着互联网不断的发展,传统的关系型数据库如oracle,mysql已经难以支撑现下大数据量,高并发的场景了。于是,NoSQL横空出世,有像cassandra这样的column-based,像MongoDB这样document-based。今天在这里猎奇的是一个graph-based的数据库,Neo4j。Neovis.js将JavaScript可视化和Neo4j无缝集成。与Neo4j的连接非常简单明了,并且由于它是在Neo4j的属性图模型的基础上构建的,因此 Neovis 的数据格式与数据库保持一致。
vue
+neo4j+(
neovis
.
js
/ neo4j-driver)纯前端
实现
知识图谱
的集成
一、
Neovis
.
js
不用获取数据直接连接数据库绘图
二、 neo4j-driver 能够直接通过前端获取数据。
三、vis.
js
绘图
四、 echarts绘图
neo4j是什么?
简单来说,这是一种比较热门的图数据库,图数据库以图形形式存储数据。 它以节点,关系和属性的形式存储应用程序的数据。 一个图由无数的节点和关系组成。
安装图数据库在这里就不介绍了,本篇主要介绍如何连接neo4j数据库,将
知识图谱
成功显示在前端页面中。
Neovis
.
js
与Neo4j的连接非常简单明了,并且
Neovis
的数据格式与那neo4j数据库保持一致。在单个配置对象中定义标签、属性、节点和关系的样式和颜色。
如果你想用
Vue
来写一个
知识图谱
的网页,首先你需要学习
Vue
的基础知识,例如
Vue
组件、指令、数据绑定等。然后你可以使用一些可视化的库,比如 D3.
js
或者 Cytoscape.
js
,将你的
知识图谱
数据呈现出来。
你可以在
Vue
中使用这些库,在
Vue
组件中通过 JavaScript 代码来控制可视化图形的显示。同时,你也可以使用
Vue
的数据绑定特性,
实现
数据和图形的双向绑...
这是一个
知识图谱
构建工具,最开始是对产品和领导为了做ppt临时要求配合做图谱展示的不厌其烦,做着做着就抽出一个目前看着还算通用的小工具,
知识图谱
可视化,仅供做
知识图谱
的小伙伴参考
小工具是前台是基于
vue
+ d3.
js
,后台是springboot配合Neo4j.
demo地址:.
实现
的基本功能:
新增节点,添
加
连线,快速添
加
节点和关系
节点的颜色和大小可修改
节点和关系的编辑,删除
导出成图片
csv导入
导出csv
添
加
图片和富文本
节点之间多个关系
增
加
直接执行cypher功能
后续优化:
新建单节点,节点的位置能指定(或者和鼠标点下的位置一致) over 2018-11-16
做出的图谱能够导出成图片 over 2018-11-16
支持导入功能,同时支持导出关系和节点 over 2018-11-17
输入一段文本,通过自然语言等手段,抽出实体和关系,编辑后
公众号:数据挖掘与机器学习笔记
知识图谱
(knowledge graph)是以图的形式表现客观世界中的实体(概念、人、事物)及其之间的关系的知识库。2012年,谷歌提出了
知识图谱
的概念,自此,
知识图谱
得到了广泛的关注和应用研究,现已发展成为语义搜索、智能问答、决策支持等智能服务的基础技术一。
知识图谱
是以图的形式表现客观世界中的实体(概念)及其之间关系的知识库.
知识图谱
的研究起源
于语义Web. 在2000年的XML大会上, Tim Berners Lee提出了语义Web的理念, 目标是为Web网页添
加
语
# 二选一
npm install -g cnpm --registry=https://registry.npm.taobao.org
npm install cnpm -g --registry=https://registry.nlark.com
cnpm i
2. 项目启动
yarn serve
3. 项目打包
yarn build
4. 使用lint检查并修复文件
yarn lint
Customize configuration
See .
二、代码功能清单
d3初始化
图查询更新视图
平移与缩放
鼠标浮动事件
鼠标单击事件
neovis
.
js
@1.5.0是一个用于在网页中可视化Neo4j图形数据库的开源库。Neo4j是一种基于图形的数据库管理系统,它使用节点、关系和属性来表示和存储数据,适用于复杂的关联和查询。而
neovis
.
js
则是一个帮助开发人员将Neo4j数据可视化的工具。
neovis
.
js
@1.5.0提供了一个简单易用的API,使开发人员能够快速构建动态的图形可视化界面。开发人员可以使用
neovis
.
js
创建并自定义图形,可以添
加
样式、标签、节点和关系以及其他图形元素。它还支持导航、缩放、过滤等交互功能,用户可以通过键盘、鼠标或触摸来操作图形。
neovis
.
js
@1.5.0还提供了一系列的配置选项,使开发人员能够自定义图形的外观和行为。例如,可以设置节点的颜色、大小、形状,以及关系的样式和箭头方向等。开发人员还可以自定义图形的布局算法,以便根据具体需求优化图形的显示效果。
除了基本的图形展示功能,
neovis
.
js
@1.5.0还提供了一些高级功能。例如,它支持对图形进行聚类、搜索和筛选,方便用户根据特定条件对图形进行分析和探索。还可以通过与Neo4j数据库的集成,
实现
动态的数据更新和实时的图形渲染。此外,
neovis
.
js
还支持与其他前端框架(如React、
Vue
.
js
和Angular)的集成,方便在现有的前端项目中使用。
总而言之,
neovis
.
js
@1.5.0是一个功能强大且易于使用的库,可以帮助开发人员快速构建漂亮、交互性强的Neo4j图形可视化界面,并提供了丰富的配置选项和高级功能,使用户能够根据具体需求自定义图形展示和交互操作。
解决vue3+ts+vite中启动报错No known conditions for “./lib/locale/lang/zh-cn“ entry in “element-plus“ package
echarts实现正负轴柱状图