使用Echarts绘制力导向图
文章目录
- 使用Echarts绘制力导向图
- 前言
- 参考文档
- 绘制力导向图
- 准备图文件
- 扩展阅读
使用Echarts绘制力导向图
前言
本文介绍了在VS Code中使用百度Echarts来绘制力导向图(Force-directred graph)。
参考文档
https://www.echartsjs.com/zh/tutorial.html
https://www.echartsjs.com/examples/zh/editor.html?c=graph-force
绘制力导向图
在VS Code中安装Live Server插件,用来做本地开发服务器,以解决异步加载图文件(.gexf)时的跨域问题。
准备需要用到的JavaScript文件放入./dist/
目录下,包括Echarts, JQuery和dataTool:
- https://echarts.baidu.com/dist/echarts.min.js
- https://code.jquery.com/jquery-3.4.1.min.js
- https://raw.githubusercontent.com/apache/incubator-echarts/master/dist/extension/dataTool.min.js
下载图文件(.gexf)样例放入./data/
目录下:
- http://echarts.baidu.com/gallery/data/asset/data/les-miserables.gexf
在项目根目录下创建graph-force.html文件,例如:
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>ECharts</title><!-- https://echarts.baidu.com/dist/echarts.js --><!-- https://echarts.baidu.com/dist/echarts.min.js --><script src="./dist/echarts.min.js"></script><!-- https://code.jquery.com/jquery-3.4.1.min.js --><script src="./dist/jquery-3.4.1.min.js"></script><!-- https://raw.githubusercontent.com/apache/incubator-echarts/master/dist/extension/dataTool.min.js --><script src="./dist/dataTool.min.js"></script>
</head><body><!-- 为ECharts准备一个具备大小(宽高)的Dom --><div id="main" style="width: 1200px;height:800px;"></div><script type="text/javascript">// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('main'));//app.title = '力引导布局';myChart.showLoading();// http://echarts.baidu.com/gallery/data/asset/data/les-miserables.gexf// https://gephi.org/gexf/format/primer.html$.get('./data/les-miserables.gexf', function (xml) {myChart.hideLoading();var graph = echarts.dataTool.gexf.parse(xml);var categories = [];for (var i = 0; i < 9; i++) {categories[i] = {name: '类目' + i};}graph.nodes.forEach(function (node) {node.itemStyle = null;node.symbolSize = 10;node.value = node.symbolSize;node.category = node.attributes.modularity_class;// Use random x, ynode.x = node.y = null;node.draggable = true;});option = {title: {text: 'Les Miserables',subtext: 'Default layout',top: 'bottom',left: 'right'},tooltip: {},legend: [{// selectedMode: 'single',data: categories.map(function (a) {return a.name;})}],animation: false,series: [{name: 'Les Miserables',type: 'graph',layout: 'force',data: graph.nodes,links: graph.links,categories: categories,roam: true,label: {normal: {position: 'right'}},force: {repulsion: 100}}]};myChart.setOption(option);}, 'xml');</script>
</body></html>
在VS Code中,右键选择grah-force.html,选择Open with Live Server,将graph-force.html部署到Live Server开发服务器上,并在默认浏览器中打开。
如果页面加载有问题,按下Ctrl
+ Shift
+ I
来查看错误信息。
在VS Code中设置自动保存,在修改grap-force.html后,Live Server可以自动刷新页面。
准备图文件
除了使用上面的示例图文件(.gexf)外,还可以自己生成图文件,然后通过Echarts进行可视化展示。
方法一:通过Gephi生成图文件
准备好点数据和边数据的CSV文件,输入到Gephi中,再输出为图文件(.gexf)。Gephi也可以作图的可视化展示。
方法二:通过networkx生成图文件
通过networkx读取点数据和边数据,再生成图文件(.gexf)。networkx也可以作图的可视化展示。
扩展阅读
- https://gephi.org/gexf/format/primer.html
使用Echarts绘制力导向图相关推荐
- 用Echarts画力导向图,节点文字随鼠标缩放而缩放
项目场景: 用Echarts画力导向图,节点文字随鼠标缩放而缩放 解决方案: 用原生函数getZr()或_zr()实现,例子如下: this.nodes=[],//节点数据 this.links=[] ...
- D3 v3版本绘制力导向图更新节点时JS控制台报错 :Error: circle attribute cx: Expected length, NaN解决办法
D3的v3版本,很古老了. 拿来绘制力导向图,画布初始化的代码如下: //代码不完整,仅作演示以说明问题 //节点数组var nodes = [ { name: "sssss" , ...
- 利用D3.js快速绘制力导向图
碎碎念: 最近课题需要基于图论和力导向图可视化每个脑电通道之间的连接性,MATLAB画的效果差强人意,于是上网搜寻到JavaScript 的一个函数库--D3.js,想快速得到数据的可视化结果 简介D ...
- echarts 绘制力导向地图
引入地图 import china from 'echarts/map/js/china' 配置项 var geoCoordMap = {'上海': [121, 30],'江苏': [118.78, ...
- python力导向图论文_力导向图(关系图) echarts的运用
Echarts关系图-力引导布局 需要做一个树形图,可以查看各个人员的关系. 可伸缩的力引导图-失败 刚开始,打算做一个可展开和伸缩的,搜索时候发现CSDN有一篇美美哒程序媛写的Echarts For ...
- 数据可视化——力导向图的绘制
本次实验数据用的是巴黎圣母院的人物关系图 基于路径绘制力导向图代码如下: <html><head><meta charset="UTF-8">& ...
- d3.js实现力导向图圈选框选
#d3.js实现力导向图圈选框选 今天给大家带来的是如何在2D可视化图形中加入通过鼠标拖动圈选功能,以力导向图为例. ##最终效果 demo跳转 ##代码解析 我们是要在节点的上方绘制一个矩形覆盖节点 ...
- D3 笔记十:力导向图
本文目前来说,是学完极客学院的<D3.js 入门教程>之后的整理出来的精简知识版,仅仅是为了知识整理.后期我会随着学习的深入,在这个基础上,进行维护与更改. 一.力导向图 我们先来了解一下 ...
- Vue+D3 绘制条形图和力导向图
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Vue+D3 绘制条形图和力导向图 准备:D3代码 1.条形图 2.力导向图 本篇blog在于把已经编写好的D3代码从一般HTML文件 ...
- echarts力导向图节点连线动画_D3.js 力导向图的显示优化(二)- 自定义功能
摘要: 在本文中,我们将借助 D3.js 的灵活性这一优势,去新增一些 D3.js 本身并不支持但我们想要的一些常见的功能:Nebula Graph 图探索的删除节点和缩放功能 前言 在上篇文章中(D ...
最新文章
- 重构ncnn,腾讯优图开源新一代移动端推理框架TNN
- linux --- 进程调度
- [codeforces 339]D. Xenia and Bit Operations
- leetcode笔记:Gray Code(2016腾讯软件开发笔试题)
- 【leetcode】762. 二进制表示中质数个计算置位
- HDU 1728 逃离迷宫【BFS】
- 徐海学院计算机专业好吗,2019中国矿业大学徐海学院专业排名
- 保存图像_06 - matplotlib中应知应会numpy存储、交换图像
- python格式化字符串%r_Python语法速查:3.字符串格式化
- udp接受_UDP协议-看这篇就够了
- MySQL 如何实现行转列分级输出?
- Mysql之show profiles
- easy excel date 类型解析报错_11.MySQL数据类型
- 《无码的青春》第七章	御姐
- 翱文中华灯谜大全 v1.1 免费下载--IT man
- TCP和UDP的区别和优缺点
- 21-04-08 cms日志分析
- 线性代数 or 量子力学 ?(七——薛定谔方程详解)
- python所有for循环语句都可以用while改写_Python while循环
- 流程图、框图、UML图、类图