cytoscape.js学习笔记(一)

网络图库Cytoscape.js的使用(三):扩展 阅读详情

cytoscape.js学习笔记(一)

写在前面

知识图谱的可视化要实现动态交互一般需要使用javascript,而其中较为成熟的JS库有cytoscape.js和D3.js等。经过查阅相关资料,D3.js比较底层,要实现高端操作所需的代码量较大,故采用cytoscape.js实现知识图谱的可视化。写博客记录下自己学习cytoscape.js的过程,也方便以后查阅。

demo

刚开始学习cytoscape.js,准备实现一个动态人物关系图的demo

  • 导入cytoscape.js库
<!DOCTYPE html>

<html>
<head>
  <title>cytoscape demo</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">
    <!-- 导入cytoscape.js库-->
  <script src="https://unpkg.com/cytoscape/dist/cytoscape.min.js"></script>
  • 插入内部样式表设置网页样式
<style>
    body {
      font-family: helvetica neue, helvetica, liberation sans, arial, sans-serif;
    }
    #cy {
      position: absolute;
      left: 0;
      top: 0;
      bottom: 0;
      right: 0;
      z-index: 1;
      opacity: 0.7;
    }
    h1 {
      color:#3366FF;
      opacity: 0.5;
      font-size: 28px;
      font-weight: bold;
    }
  </style>
  • 插入脚本,初始化视窗状态
<script>
	//增加监听事件,函数内初始化
    document.addEventListener('DOMContentLoaded', function () {
      var cy = window.cy = cytoscape({
        container: document.getElementById('cy'),	//container的值为DOM容器,表示显示图表的位置
        style: [	//设置样式的样式表
          {
            selector: 'node',	//设置节点样式
            css: {
              'content': 'data(name)',
               'color':'white',
               'text-valign': 'center',
               'text-outline-color': '#6699FF',
               'background-color': '#6699FF',
               'height': 60,
                'width': 60,
                'font-size':'14px',
                'font-weight': 'bold',
            }
          },
          {
            selector: 'edge',	//设置边的样式
            css: {
            'content':'data(relationship)',
              'curve-style': 'bezier',	//曲线类型为贝塞尔曲线
              'target-arrow-shape': 'triangle',
             'line-color': '#CCCCCC',
             'width': 1,
             'font-size':'14px',
            }
          }
        ],

        elements: {		//初始化元素
          nodes: [		//节点数据
            { data: { id:'n1',name: '江户川柯南' } },
            { data: { id:'n2',name: '毛利兰' } },
            { data: { id:'n3',name: '工藤新一' } },
            { data: { id:'n4',name: '工藤优作' } },
            { data: { id:'n5',name: '工藤有希子' } },
            { data: { id:'n6',name:'毛利小五郎' } },
            { data: { id:'n7',name:'妃英理' } },
            { data: { id:'n8',name: '铃木园子' } },
            { data: { id:'n9',name:'服部平次' } },
            { data: { id:'n10',name:'远山和叶' } },
            { data: { id:'n11',name:'怪盗基德' } },
            { data: { id:'n12',name:'阿笠博士' } },
            { data: { id:'n13',name:'目暮警官' } },
            { data: { id:'n14',name: '高木警官' } },
            { data: { id:'n15',name: '佐藤警官' } },
            { data: { id:'n16',name:'白鸟警官' } },
            { data: { id:'n17',name:'琴酒' } },
            { data: { id:'n18',name:'贝尔摩德' } },
            { data: { id:'n19',name:'伏特加' } },
            { data: { id:'n20',name: '灰原哀' } },
            { data: { id:'n21',name:'赤井秀一' } },
            { data: { id:'n22',name: '朱蒂老师' } },
            { data: { id:'n23',name:'小岛元太' } },
            { data: { id:'n24',name:'吉田步美' } },
            { data: { id:'n25',name:'圆谷光彦' } },
            { data: { id:'n26',name:'中森警官' } },
            { data: { id:'n27',name:'中森青子' } },
            { data: { id:'n28',name:'安室透' } },
          ],
          edges: [		//边的数据
          { data: { id:'e1',relationship: '照顾', source: 'n2', target: 'n1' } },
          { data: { id:'e2',relationship: '情侣', source: 'n3', target: 'n2' } },
          { data: { id:'e3',relationship: '父子', source: 'n3', target: 'n4' } },
          { data: { id:'e4',relationship: '母子', source: 'n3', target: 'n5' } },
          { data: { id:'e5',relationship: '父女', source: 'n2', target: 'n6' } },
          { data: { id:'e6',relationship: '母女', source: 'n2', target: 'n7' } },
          { data: { id:'e7',relationship: '好友', source: 'n2', target: 'n8' } },
          { data: { id:'e8',relationship: '好友', source: 'n3', target: 'n9' } },
          { data: { id:'e9',relationship: '情侣', source: 'n10', target: 'n9' } },
          { data: { id:'e10',relationship: '亦敌亦友', source:'n3', target: 'n11' } },
          { data: { id:'e11',relationship: '邻居', source: 'n3', target: 'n12' } },
          { data: { id:'e12',relationship: '原同事', source: 'n13', target: 'n6' } },
          { data: { id:'e13',relationship: '上司', source: 'n13', target: 'n14' } },
          { data: { id:'e14',relationship: '相恋', source: 'n15', target: 'n14' } },
          { data: { id:'e15',relationship: '单相思', source: 'n16', target: 'n15' } },
          { data: { id:'e16',relationship: '寻找下落', source: 'n17', target: 'n3' } },
          { data: { id:'e17',relationship: '同伙', source: 'n17', target: 'n18' } },
          { data: { id:'e18',relationship: '上司', source: 'n17', target: 'n19' } },
          { data: { id:'e19',relationship: '收留', source: 'n12', target: 'n20' } },
          { data: { id:'e20',relationship: '追查', source: 'n21', target: 'n18' } },
          { data: { id:'e21',relationship: 'FBI同事', source: 'n21', target: 'n22' } },
          { data: { id:'e22',relationship: '同学', source: 'n1', target: 'n23' } },
          { data: { id:'e23',relationship: '同学', source: 'n1', target: 'n24' } },
          { data: { id:'e24',relationship: '同学', source: 'n1', target: 'n25' } },
          { data: { id:'e25',relationship: '情侣', source: 'n27', target: 'n11' } },
          { data: { id:'e26',relationship: '父女', source: 'n27', target: 'n26' } },
          { data: { id:'e27',relationship: '部下', source: 'n28', target: 'n17' } },
          { data: { id:'e28',relationship: '追捕', source: 'n26', target: 'n11' } },
          { data: { id:'e29',relationship: '缩小', source: 'n3', target: 'n1' } },
          { data: { id:'e30',relationship:'夫妻', source: 'n4', target: 'n5' } },
          { data: { id:'e31',relationship:'夫妻', source: 'n6', target: 'n7' } },
          { data: { id:'e32',relationship: '同事', source: 'n16', target: 'n13' } },
          { data: { id:'e33',relationship: '背叛', source: 'n20', target: 'n17' } },
          { data: { id:'e34',relationship: '师傅', source: 'n6', target: 'n28' } },
          { data: { id:'e35',relationship: '对手', source: 'n28', target: 'n21' } },
          ]
        },
	//设置布局
        layout: {
          name: 'cose',	//一种默认布局方式
        }
      });
    });
  </script>
</head>
  • 编写html文件的body
<body>
  <h1>名侦探柯南人物关系图</h1>
  <div id="cy"></div>
</body>

</html>

实现效果

名侦探柯南人物关系图

总结

cytoscape.js库中包括以下变量:

变量名主要功能
cy核心,生成一个图的对象
node节点的集合
edge边的集合
ele元素的集合

写在最后:第一次使用cytoscape.js库,主要实现初始化和一些配置,接下来将继续学习节点的增删和事件响应等内容。(由于不会jquery,所以js代码均为原生,也会去学一学jquery库)

参考博客:
cytoscape.js基础篇
cytoscape.jsAPI文档

用cytoscape.js展示neo4j网络关系图 - 3. cytoscape.js 要完成的功能要把neo4j数据库里面的Movie数据正确的显示到前端,我们需要完成如下的功能。 搭建基于Flask的简单网站 用py2neo来获取neo4j的节点及关系 用cytoscape.js来显示网络关系图 上一篇博客介绍了如何用py2neo来获取neo4j的节点及关系,现在我们要用cytoscape.js来把用neo4j取得的节点和关系显示到网页上。先看看cytoscape.js是什么cyt 阅读详情

相关推荐

cytoscape.js Cxtmenu圆形菜单篇

cytoscape.js Cxtmenu圆形菜单篇系列文章前言cytoscape依赖引用cytoscape扩展依赖引用升级Cytoscape组件扩展Cytoscape实例对象完整的Cytoscape组件代码Cytoscape组件的使用创建Cytoscape测试模板Cytoscape组件引用Cytoscape测试模板方法完整的Cytoscape测试模板代码完整截图注意事项 很久之前写过一篇cytoscape.js基础篇, 地址是https://blog.csdn.net/dahaiaixiaohai/arti

娃儿回家 2895

知识图谱可视化之cytoscape.js构建知识图谱(django框架将数据由后台传到前台进行图谱构建)

1、cytoscape.js是什么 cytoscape.js是常用的构建知识图谱的工具,是一个网络图的可视化工具。通常有两种使用方式: 第一种是桌面版的Cytoscape Desktop,集成好的app供我们使用。 第二种是前端js库,通过在前端代码中引用cytoscape.js进行使用,通常cytoscape.js需要结合jquery.js进行使用。 在此使用cytoscape.js进行...

带鱼工作室的博客 1万+

Cytoscape.js 构建知识图谱的可视化

知识图谱是一种表示和组织知识的图形化方式,它由节点和边组成,用于展示实体之间的关系。Cytoscape.js 是一个强大的 JavaScript 图形库,可以用于构建和展示复杂的网络图和知识图谱。在本文中,我们将介绍如何使用 Cytoscape.js 构建知识图谱的可视化,并提供相应的源代码。通过创建 Cytoscape.js 实例、添加节点和边,并运行布局算法,我们可以构建出具有良好可视化效果的知识图谱。通过以上的代码,我们可以使用 Cytoscape.js 构建一个简单的知识图谱并进行可视化。

StnIot的博客 660

网络图库Cytoscape.js的使用(一):初始化配置

在vue中如何使用Cytoscape.js

weixin_44001906的博客 4773

Cytoscape.js - 用于可视化和分析的图论(网络)的JS库-javascript

Cytoscape.js - 用于可视化和分析的图论(网络)的JS库 Cytoscape.js 用于可视化和分析的图论(网络)库:http://js.cytoscape.org 描述 Cytoscape.js 是一个功能齐全的图论库。 您是否需要建模和/或可视化关系数据,如生物数据或社交网络? 如果是这样,Cytoscape.js 正是您所需要的。 Cytoscape.js 包含一个图论模型和一个可选的渲染器来显示交互式图形。 该库旨在让程序员和科学家尽可能轻松地在他们的应用程序中使用图论,无论是用于 Node.js 应用程序中的服务器端分析,还是用于丰富的用户界面。 你可以通过一行开始使用 Cytoscape.js: var cy = cytoscape({ elements: myElements, container: myDiv }); 通过阅读其文档了解有关 Cytoscape.js 功能的更多信息。 文档 您可以在项目网站上找到文档和下载。 路线图 Cytoscape.js 的未来版本计划在 Github 问题跟踪器的里程碑中。 您可以使用里程碑来查看当前

QEMU+KVM实战:5分钟搞定Ubuntu 24.04虚拟机搭建(附性能优化技巧)

本文详细介绍了在Linux宿主机上使用QEMU和KVM快速搭建Ubuntu 24.04虚拟机的完整实战流程。内容涵盖从环境准备、核心组件解析到具体的安装命令,并重点分享了针对CPU、内存、存储I/O及网络性能的深度优化技巧,旨在帮助用户构建一个响应迅速、资源隔离良好的高性能虚拟化开发与测试环境。

j2k3l4的博客 753

vue内使用 cytoscape.js学习(一)

最近项目需求根据返回的数据渲染出一个拓扑图。看了一些文档和demo决定用cytoscape.js来实现,因为之前也没接触个这个库,也是第一次用,所以记录一下,也给需要用到的朋友提供一些帮助。 官方文档点击: 文档 废话不多说,开始: npm install cytoscape --save //安装 main.js中配置 import cytoscape from "cytoscape"; Vu...

weixin_43753330的博客 5926

S7-1200模拟量

将两种不同的金属或合金金属焊接起来,构成一个闭合回路,利用温差电动势来测量温度,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势--热电动势,这就是所谓的塞贝克效应(seebeck effect)。温差越大,热电动势越高。热电偶是有正负极性的,所以需要确保导线连接到正确的极性,否则会造成明显的测量误差。为了使温度补偿达到最佳效果,必须将热电偶模块安装在温度稳定的环境中简述:两种金属,每一种金属随温度变化是不同的,出现温差--由俩金属构成的回路就会有电流经过,因此两端形成热电动势。

王阿妹小天才的博客 2591

cytoscape.js基础篇

cytoscape.js基础篇欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢...

娃儿回家 1万+

Unity 接入HybridCLR的点点滴滴,亲测三平台(PC、Android、WebGL)妥妥的。-问题分享

一入热更深似海啊,没有热更是真恼火啊,干啥啥不方便,动不动就得重新发包;说实在的,也是工作之余研究这个,在原有框架基础上接入这个热更,既要保持原有功能,还要支持热更,实实在在、断断续续搞了这么久,终于是接入并测通了,这一路是坎坎坷坷,下面把走过的弯弯绕绕记录下,希望对后来想接入的小伙伴有帮助吧。

GarFe的博客 1万+

[kriging](一)网上下载的kriging克里金的C++程序的初步调试

笔者在网上下载了一份克里金的C++程序,水平有限,正在逐步地调试中。 初步 克里金法现在在许多软件都已经有集成了,据笔者所知: arcgis : 看过有的arcgis培训视频里面简略介绍了里面的插值方法,有克里金。 surfer :笔者用过这个,效果很好。 gocad :听说有 landmark &jason :研究生时候用的专业的石油物探软件,里面有克里金法,万恶的开始。 pykrig...

FOREST优快云 5610

Cytoscape.js的安装与使用( 附:测试demo)

Cytoscape 是一个强大的图网络可视化库,常用于创建交互式的节点和边网络图。

weixin_43891869的博客 1961

yakit 验证码识别 进行webfuzzer

在渗透测试的过程中,我们可能需要对管理员密码进行枚举,或者密码喷洒的时候,遇到验证码就很烦。有没有自动化识别验证码的办法呢?有的,兄弟,有的。验证码的识别率很低,captcha-killer-modified对算术验证码识别正确率非常低,还会识别成乱七八糟的结果,这就非常麻烦。因为你不知道到底是验证码不对,还是密码不对。这是 ddddocr 识别率的问题,如果师傅们找到准确度更高的工具,完全可以替换上去。

Arkmornings的博客 1664

Dash Cytoscape与Cytoscape.js深度整合:底层原理与扩展开发

Dash Cytoscape是一个基于Cytoscape.js的Python网络可视化库,它为开发者提供了在Dash应用中创建交互式网络图的强大能力。本文将深入解析Dash Cytoscape与Cytoscape.js的底层整合原理,并探讨如何进行扩展开发,帮助开发者更好地利用这一工具构建复杂的网络可视化应用。 ## 底层整合架构解析 Dash Cytoscape的核心架构是通过React组件

gitblog_01042的博客 473

深入解析set_input_delay:从理论到实践的关键时序约束

本文深入解析了FPGA/ASIC设计中关键的时序约束命令set_input_delay,从理论到实践详细阐述了其工作原理。文章重点讲解了如何结合setup time和hold time,通过计算-max与-min值来精确描述外部延迟,确保芯片内部逻辑能稳定捕获数据,并介绍了虚拟时钟、DDR接口约束等实战技巧与常见陷阱。

weixin_29313423的博客 316

SOME/IP协议详解「4.1·经典AutoSAR下的SOME/IP架构」

SOME/IP协议详解「4.1·经典AutoSAR下的SOME/IP架构」 点击返回雪云飞星的SOME/IP协议详解「总目录」 SOME/IP协议详解「4.1·经典AutoSAR下的SOME/IP架构」1 CP的SOME/IP架构概览2 业务报文通信流3 服务发现通信和控制流 1 CP的SOME/IP架构概览 2 业务报文通信流 3 服务发现通信和控制流 点击返回雪云飞星的SOME/IP协议详解「总目录」 ...

雪云飞星的博客 6067

cytoscape.js进阶篇

cytoscape.js进阶篇系列文章前言cytoscape依赖引用cytoscape扩展依赖引用升级Cytoscape组件扩展Cytoscape组件模板容器扩展Cytoscape组件方法完善Cytoscape组件高亮样式完善Cytoscape组件中圆形菜单中的高亮邻居指令Cytoscape组件中完善内容方法详解放大缩小合适大小刷新布局高亮邻居完整的Cytoscape组件代码Cytoscape组件的使用创建Cytoscape测试模板Cytoscape组件引用Cytoscape测试模板方法完整的Cytosca

娃儿回家 6584

Python时间序列:PaddleTS-时间序列分类

评估的指标采用F1,Precision,Recall,PaddleTS已经基于TSDataset实现了这三个指标的计算,直接调用即可。使用内置的API:get_dataset加载BasicMotions数据集。模型训练完成之后,可以对测试集进行预测并评估。模型保存之后,可以加载模型用于新的数据预测。可以将训练完成的模型保存到指定路径。概率预测 可以返回每个分类的概率。安装paddlets。

斌擎科技 1292

5分钟掌握Cytoscape.js:构建专业网络可视化的终极JavaScript库

Cytoscape.js是一个功能强大的JavaScript网络可视化库,专门用于图形理论和复杂网络的可视化分析。无论你是生物信息学研究者、数据分析师还是前端开发者,这个强大的网络图库都能帮助你快速构建交互式网络图。在本文中,我将为你详细介绍如何使用这个强大的网络可视化工具,以及它如何改变你处理关系数据的方式。 ## 为什么选择Cytoscape.js进行网络可视化? Cytoscape.js

gitblog_01163的博客 393

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Cytoscape.js-cxtmenu 项目常见问题解决方案

Cytoscape.js-cxtmenu 项目常见问题解决方案 1. 项目基础介绍和主要编程语言 Cytoscape.js-cxtmenu 是一个为 Cytoscape.js 提供圆形上下文菜单的扩展插件。该插件允许用户在 Cytoscape.js 的节点上操作圆形上下文菜单,通过滑动选择菜单项,对节点、边或图形背景执行命令。该项目主要使用 JavaScript 编程语言,同时依赖于 Cytosc...

gitblog_00528的博客 782

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Cytoscape.js-Dagre 项目推荐

Cytoscape.js-Dagre 项目推荐 1. 项目基础介绍和主要编程语言 Cytoscape.js-Dagre 是一个基于 JavaScript 的开源项目,专门为 Cytoscape.js 提供 Dagre 布局支持。Cytoscape.js 是一个强大的图论(网络)库,用于可视化和分析复杂网络结构。Dagre 布局是一种用于有向无环图(DAG)和树形结构的布局算法,能够有效地组织和展示...

gitblog_00062的博客 1047

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Cytoscape.js-Dagre 项目常见问题解决方案

Cytoscape.js-Dagre 项目常见问题解决方案 Cytoscape.js-Dagre 是一个基于 Cytoscape.js 的插件,它使用 Dagre 布局算法来对图形进行自动布局。该项目的编程语言主要使用 JavaScript。 新手常见问题及解决方案 问题一:项目依赖安装失败 问题描述: 新手在尝试安装项目依赖时可能会遇到依赖安装失败的错误。 解决步骤: 确认已安装最新版本的 N...

gitblog_01029的博客 745

cytoscape.js初级篇

cytoscape.js初级篇系列文章前言cytoscape依赖引用cytoscape扩展依赖引用创建Cytoscape组件创建Cytoscape模板容器创建Cytoscape实例对象配置Cytoscape实例对象样式配置Cytoscape实例对象添加删除动作完整的Cytoscape组件代码Cytoscape组件的使用创建Cytoscape测试模板Cytoscape组件引用Cytoscape测试模板方法完整的Cytoscape测试模板代码完整截图注意事项 很久之前写过一篇cytoscape.js基础篇, 地

娃儿回家 3737

cytoscape.js导出图片png或jpg

cytoscape.js实现导出图片pngcytoscape.js导出样例展示cytoscape.js `Export `方法 [详情](https://js.cytoscape.org/#core/export)`cy.png()` 导出png构造方法参数详解注意事项`cy.jpg()` 导出jpg(jpeg)别名构造方法参数详解注意事项导出全局png图片导出全局带有水印的png图片导出部分png图片(参数控制是否包含水印) cytoscape.js Cytoscape.js是一个用JS编写的开源图库.

娃儿回家 1万+

Cytoscape.js 网络图库实战指南:从零构建复杂关系可视化系统

Cytoscape.js 是一个功能强大的 JavaScript 网络图库,专门用于图形理论和复杂网络的可视化分析。这个开源库能够帮助开发者快速构建交互式网络图,特别适合生物信息学、社交网络分析、知识图谱和系统架构可视化等场景。无论是数据分析师还是前端工程师,都可以通过 Cytoscape.js 轻松实现专业级的网络可视化应用。 ## 网络可视化架构设计深度解析 Cytoscape.js 采用

gitblog_00318的博客 934

探索Cytoscape.js的圆形上下文菜单扩展:cytoscape-cxtmenu

探索Cytoscape.js的圆形上下文菜单扩展:cytoscape-cxtmenu 在数据可视化的世界中,Cytoscape.js已经成为了一个不可或缺的工具,它以其强大的网络图绘制能力赢得了开发者的青睐。今天,我们将介绍一个令人兴奋的Cytoscape.js扩展——cytoscape-cxtmenu,它为Cytoscape.js带来了全新的交互体验。 项目介绍 cytoscape-cxtmen...

gitblog_01119的博客 948
下一篇: 使用特征值分解和SVD分解处理图片矩阵并还原重构矩阵
AddVH
博客等级 码龄7年 13粉丝 5原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值