Gehpi的网络布局

Gehpi的网络布局

  • 1. 力引导布局
  • 2. 辅助布局

布局是网络可视化中的重要概念,指将点和边通过某种策略进行排布,应尽可能满足以下4个原则:

  • 节点均匀分布在有限的区域内
  • 避免边的交叉和弯曲
  • 保持边的长度一致
  • 整体布局能反映图内在的特性

Gephi的布局模块(Layout)可根据某种策略对节点和边进行排布,使图形既具有特定需要的合理性,也易于视觉识别。布局算法是Gephi的核心,默认提供12种布局算法,可分为两类:力引导布局、辅助编调整布局。

1. 力引导布局

力引导布局通过能够模仿物理世界中的引力和斥力,将图中的节点模拟成原子,通过模拟原子间的力场来计算节点间的位置关系,使系统最终进入一种动态平衡

Gephi的力引导布局有6种,即Force Atlas、Force Atlas 2、Fruchterman Reingold、OpenOrd、Yifan Hu、Yifan Hu Proportional。

(1)Force Atlas

Force Atlas布局使图更紧凑、可读性强。主要参数如下:

  • Inertia(惯性):值愈大,图的摇摆幅度越大。
  • Repulsion strength(斥力强度):每个节点排斥其他节点的强度,值越大,节点的距离越大。
  • Attraction strength(吸引强度):连接节点之间的吸引力的强度,值越大,有连接的节点越被拉近。
  • Gravity(重力):值越小,图越分散;值越大,图越压缩。
  • Speed(速度):布局运动的速度,值越大,图的布局速度越快。

在这里插入图片描述
(2)Force Atlas 2

Force Atlas 2是改进的Force Atlas算法,速度更快。主要参数如下:

  • Scaling(缩放):节点的斥力强度,值越大,斥力越大,图越稀疏。
  • Stronger Gravity(更强的重力):一个已经定义好的较强的重力。
  • Gravity(重力):自定义的重力值,可以比“更强的重力”更强。
  • Dissuade Hubs(劝阻Hubs):只有输入的边会被推到边缘。
  • LinLog模式:线性和对数模式的切换。
  • Prevent Overlap(防止重叠):可以把重叠的节点展开。
  • Tolerance(Speed)/容差(速度):布局速度的选取,较小的数值速度较慢,但精度更高。

在这里插入图片描述
(3)Fruchterman Reingold

Fruchterman Reingold简称FR,FR布局基于再次改进的弹性模型,该布局算法遵循两个简单的原则,即有连接的节点互相靠近和无连接的节点互相排斥。主要参数如下:

  • Area(区):定义图形的幅度,值越大图越大,也越稀疏。
  • Gravity(重力):定义重力值,值越大重力越强,节点越被中心吸引。
  • Speed(速度):定义布局的速度,值越大布局速度越快,但也越不精确。
    在这里插入图片描述

(4)OpenOrd

OpenOrd布局是一种新的力引导布局,支持多核、并行。OpenOrd布局的Stages(阶段)分为Liquid(液体)、Expansion(扩张)、Cooldown(冷却)、Crunch(紧缩)和Simmer(煨)5个过程,适合处理节点较多的图;对于节点较少的图形,运行起来效果并不是很好。

在这里插入图片描述
(5)Yifan Hu

Yifan Hu布局也是力引导布局的改进版,由胡一凡在2005年提出,在多层级力引导算法中引入了超节点的概念。该布局算法中,将一个节点与它远处一簇节点之间的斥力当作此节点与一个超节点间的斥力来计算,从而大大减少了计算量,使得总计算复杂度下降,可处理几十万个节点规模的图。主要参数如下:

  • Optimal Distance(最佳距离):值越大,整个图的尺寸越大。
  • Relative Strength(相对强度):值越大,节点越稀疏;值越小,节点越紧密。

在这里插入图片描述
(6)Yifan Hu Proportional

Yifan Hu比例布局的参数与Yifan Hu布局的参数相同,实际上这两个布局所起到的作用是相同的,扩展(收缩布局的参数只有比例因子,比例因子的设置方法如下:

  • 如果比例因子为1,那么图不会放大也不会缩小。
  • 如果比例因子大于1,那么图会放大,且值越大,放大的比例越大。
  • 如果比例因子小于1,那么图会缩小,且值越小,缩小的比例越大。
  • 如果比例因子为负数,那么在放大或缩小的同时,也会从上下、左右两个方面颠倒图形。

在这里插入图片描述

2. 辅助布局

辅助布局是根据某种预先定义的规则对图进行布局,辅助布局有6种,Noverlap、Rotate、Contraction、Expansion、标签调整、随机布局。

(1)Noverlap

Noverlap(交叠布局)可以防止参数的重,Noverlap布局中不考虑标签的重叠。。主要参数如下:

  • speed(速度):布局速度。一般都是速度越快,布局越差
  • ratio(节点边距) :间距为1的时候,节点会连在一起,随着间距增大,节点变的越来越分开。当简间距小于1的时候,允许节点重叠。
  • margin(幅度):增加幅度半径。当幅度为0的时候,没有余量;幅度增大节点分离越大,负的幅度的时候允许重叠。

在这里插入图片描述
(2)Rotate

Rotate布局很简单,其可以将图形从整体上进行顺时针或者逆时针的旋转,从而进行布局。唯一的参数是Angle(旋转角度,旋转角度可以是正的,也可以是负的值。

在这里插入图片描述
(3)Contraction(Expansion

Expansion(扩展)、Contraction(收缩)布局是对原始图的按照比例的扩展和收缩,两者唯一的参数是Scale factor(因子。

Scale factor取值有以下几种情况:

  • 因子=1,不扩展,不收缩。
  • 因子>1,扩展,值越大,扩展越大。
  • 因子<1,收缩,值越小,越收缩。
  • 因子为负数: 在扩展和收缩的同时,进行图形的颠倒。

在这里插入图片描述
(4)Label Adjust

Label Adjust(标签调整)布局主要可以防止标签的重叠,参数包括Speed(速度,决定了布局的速度;Include Node size(包括节点大小):是否使得重叠的节点分散。

在这里插入图片描述

(5) Random Layo

Random Layout(随机布局)在一个Space size(空间大小的参数)上进行随机的布局。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/646.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络

目录卷积神经网络概述神经网络原理卷积神经网络卷积层怎么控制输出数据&#xff1f;如何抓取特征池化层归一化层全连接层局部感受野权值共享多卷积核池化子采样多卷积层卷积神经网络的训练前向传播BackForward反向传播权值更新过程中的卷积网络结构层的排列规律层的尺寸设置规律…

web3:区块链共识机制系列-POS(Proof of Stake)股权证明算法

web3相关学习一并收录至该博客&#xff1a;web3学习博客目录大全 前情衔接&#xff1a;web3:区块链常见的几大共识机制及优缺点 目录前言算法公式与原理算法公式运作原理以Peer Coin为例缺陷优点缺点特点分类发展历程casper协议1.什么是无成本利益关系问题2.引入casper协议解决…

SpringBoot 动态操作定时任务(启动、停止、修改执行周期)增强版

前段时间编写了一篇博客SpringBoot 动态操作定时任务&#xff08;启动、停止、修改执行周期&#xff0c;该篇博客还是帮助了很多同学。 但是该篇博客中的方法有些不足的地方&#xff1a; 只能通过前端控制器controller手动注册任务。【具体的应该是我们提前配置好我们的任务&am…

selenium(4)-------自动化测试脚本(python)

webdriverAPI 一)定位元素的方式&#xff0c;必问 1.1)id来定位元素&#xff0c;前提是元素必须具有id属性&#xff0c;因为有的元素是没有id的 1.2)name&#xff0c;元素必须有name&#xff0c;并且必须全局唯一 1.3)tagname&#xff0c;元素是一定有的&#xff0c;但是必须全…

HTTP 缓存的工作原理

缓存是解决http1.1当中的性能问题主要手段。缓存可能存在于客户端浏览器上&#xff0c;也可以存在服务器上面&#xff0c;当使用过期缓存可能给用户展示的是错误的信息而导致一些bug。 HTTP 缓存&#xff1a;为当前请求复用前请求的响应 • 目标&#xff1a;减少时延&#xff1…

Python+Yolov8目标识别特征检测

Yolov8目标识别特征检测如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01;前言这篇博客针对<<Yolov8目标识别特征检测>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与应用推荐…

3分钟看完-丄-Python自动化测试【项目实战解析】经验分享

目录&#xff1a;导读 引言 自动化测试 背景 测试团队 测试体系发展 测试平台 自动化测试现状 现状一&#xff1a; 现状二&#xff1a; 现状三&#xff1a; 现状四&#xff1a; 现状五&#xff1a; 现状六&#xff1a; 失败的背景 失败的经历 失败总结 引言 内…

Java多线程系列--synchronized的原理

原文网址&#xff1a;Java多线程系列--synchronized的原理_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java的synchronized的原理。 反编译出字节码 Test.java public class Test {private static Object LOCK new Object();public static int main(String[] args) {synchro…

动态矢量瓦片缓存库方案

目录 前言 二、实现步骤 1.将数据写入postgis数据库 2.将矢量瓦片数据写入缓存库 3.瓦片接口实现 4.瓦片局部更新接口实现 总结 前言 矢量瓦片作为webgis目前最优秀的数据格式&#xff0c;其主要特点就是解决了大批量数据在前端渲染时出现加载缓慢、卡顿的问题&#xff0…

LeetCode 112. 路径总和

LeetCode 112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶…

Python笔记 -- 文件和异常

文章目录1、文件1.1、with关键字1.2、逐行读取1.3、写入模式1.4、多行写入2、异常2.1、try-except-else2.2、pass1、文件 1.1、with关键字 with关键字用于自动管理资源 使用with可以让python在合适的时候释放资源 python会将文本解读为字符串 # -*- encoding:utf-8 -*- # 如…

Linux操作系统基础的常用命令

1&#xff0c;Linux简介Linux是一种自由和开放源码的操作系统&#xff0c;存在着许多不同的Linux版本&#xff0c;但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中&#xff0c;比如手机、平板电脑、路由器、台式计算机。1.1Linux介绍Linux出现于1991年&#xff0c…

操作技巧 | 在Revit中借用CAD填充图案的方法

在建模过程中&#xff0c;有时需要达到多种填充效果&#xff0c;而CAD中大量的二维填充图案&#xff0c;便是最直接的资源之一。 使用 填充图案之前 使用 填充图案之后 其中要用到主要命令便是对表面填充图案的添加与编辑 简单效果 如下 模型填充与绘图填充 区别 模型填…

Java for循环嵌套for循环,你需要懂的代码性能优化技巧

前言 本篇分析的技巧点其实是比较常见的&#xff0c;但是最近的几次的代码评审还是发现有不少兄弟没注意到。 所以还是想拿出来说下。 正文 是个什么场景呢&#xff1f; 就是 for循环 里面还有 for循环&#xff0c; 然后做一些数据匹配、处理 这种场景。 我们结合实例代码来…

SpringBoot+WebSocket实时监控异常

# 写在前面此异常非彼异常&#xff0c;标题所说的异常是业务上的异常。最近做了一个需求&#xff0c;消防的设备巡检&#xff0c;如果巡检发现异常&#xff0c;通过手机端提交&#xff0c;后台的实时监控页面实时获取到该设备的信息及位置&#xff0c;然后安排员工去处理。因为…

Java实现调用第三方相关接口(附详细思路)

目录1.0.简单版2.0.升级版2-1.call.timeout()怎么传入新的超时值2-2.timeout(10, TimeUnit.SECONDS)两个参数的意思&#xff0c;具体含义3.0.进阶版3-1.java.net.SocketTimeoutException: 超时如何解决4.0.终极版1.0.简单版 以下是一个使用 Java 实际请求“第三方”的简单示例代…

一眼看破五花八门的链表结构

文章目录&#x1f4d5;一&#xff1a;五花八门的链表结构&#x1f4d6;链表与数组的简单对比&#x1f4d6;单链表&#x1f4d6;循环链表&#x1f4d6;双向链表&#x1f4d5;二&#xff1a;链表VS数组性能大比拼&#x1f47f;最后说一句&#x1f431;‍&#x1f409;作者简介&am…

数据挖掘(2.1)--数据预处理

一、基础知识 1.数据的基本概念 1.1基础知识 数据是数据对象(Data Objects)及其属性(Attributes)的集合。 数据对象(一条记录、一个实体、一个案例、一个样本等)是对一个事物或者物理对象的描述。 数据对象的属性则是这个对象的性质或特征&#xff0c;例如一个人的肤色、眼球…

GPT-4 性能炸天:10 秒做出一个网站,在考试中击败 90% 人类

一、GPT-4&#xff0c;吊打ChatGPT&#xff01; 一觉醒来&#xff0c;万众期待的 GPT-4&#xff0c;它来了&#xff01; OpenAI老板Sam Altman直接开门见山地介绍道&#xff1a;这是我们迄今为止功能最强大的模型&#xff01; 二、GPT-4&#xff0c;新功能一览 究竟有多强&am…

Python人脸识别

#头文件&#xff1a;import cv2 as cvimport numpy as npimport osfrom PIL import Imageimport xlsxwriterimport psutilimport time#人脸录入def get_image_name(name):name_map {f.split(.)[1]:int(f.split(.)[0]) for f in os.listdir("./picture")}if not name…