【数据挖掘】关系网络可视化

news2024/11/16 8:22:12

目录

1. Pyvis 介绍

2. 关系网络可视化


1. Pyvis 介绍

Pyvis 是一个 Python 库,用于创建和可视化网络图。它基于 Vis.js 库,可以生成交互式的 HTML 文件,让用户在网页上直观地查看和操作网络图。以下是 Pyvis 的主要功能和特点:

1. 创建和可视化网络图:
   Pyvis 允许用户创建节点和边,并将其可视化。网络图可以是有向图或无向图。

2. 集成 NetworkX:
   Pyvis 与 NetworkX 集成,可以直接从 NetworkX 图对象生成 Pyvis 图对象,方便用户将已有的 NetworkX 图转换为交互式的可视化图。

3. 交互式功能:
   生成的图形是交互式的,用户可以拖动节点、缩放图形、查看节点和边的详细信息(如权重、标签等)。

4. 定制化选项:
   Pyvis 提供多种配置选项,允许用户定制图形的外观和行为。例如,可以设置节点和边的颜色、形状、大小、标签、物理引擎等。

5. HTML 输出:
   生成的网络图可以保存为 HTML 文件,便于分享和展示。用户只需在浏览器中打开 HTML 文件即可查看图形。

6. 快速原型和调试:
   Pyvis 提供的简单 API 和直观的配置选项,使其适合快速原型设计和调试网络图。

Pyvis 是一个非常适合用来展示和分析复杂网络结构的工具,特别是在需要交互式可视化的场景下,如社交网络分析、网络拓扑研究等。

2. 关系网络可视化

import random
import string
import networkx as nx
from pyvis.network import Network

# 创建有向图
G = nx.DiGraph()

# 添加节点和边
node_list = ["".join(random.choices(string.ascii_letters, k=5)) for _ in range(20)]
for _ in range(100):
    start = random.choices(node_list)[0]
    end = random.choices(node_list)[0]
    w = random.choices(range(5), weights=[100, 1, 1, 1, 1])[0]
    G.add_edge(start, end, weight=w)

# 创建 Pyvis 网络
net = Network(height='750px', 
              width='100%', 
              bgcolor="#222222", 
              font_color="white", 
              select_menu=True, 
              filter_menu=True,
              notebook=True)

# 将 NetworkX 图形添加到 Pyvis 网络
net.from_nx(G)

# 配置边的外观
for edge in net.edges:
    edge['title'] = f"Weight: {edge['width']}"
    edge['value'] = edge['width']

# net.toggle_physics(True)
# 显示图形
net.show("graph.html")

这段代码首先创建了一个有向图,并随机生成了20个节点,每个节点由5个随机字母组成。接着,随机在这些节点之间添加了100条边,每条边都有一个权重,其中权重为0的概率最大,其他权重(1到4)的概率较小。然后,代码使用Pyvis库来可视化这个图,将NetworkX创建的有向图转换为Pyvis的网络对象。为每条边设置了标题和值,标题显示边的权重,值用于控制边的可视化效果。最后,代码生成一个名为"graph.html"的HTML文件,用于展示图形。

关系筛选

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

12.直接交换机-direct exchange

直接交换机与上一篇介绍的扇出类型交换机的区别就在于: 扇出交换机的routingKey都是空串,也就是一样的。而直接类型交换机的routingKey都是不一样的。还有就是交换机的类型不一样。 直接类型交换机,也叫做路由模式。通过routingKey可以做到区…

ESP32-S3-DevKitC-1开发记录帖——与MPU6050进行姿态检测

目录 MPU6050传感器——姿态检测 1.姿态检测 1.1 基本认识 1)坐标系 2)姿态角的关系 3)陀螺仪检测的缺陷 4)利用加速度计检测角度 5)利用磁场检测角度 1.2 姿态融合与四元数 1.3传感器工作原理 1.4 MPU6050模…

k8s集群可视化工具安装(dashboard)

可视化安装 2.1、下载相关的yaml文件 wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml Vim recommended.yaml 2.2、部署 kubectl apply -f recommended.yaml 查看那kubernetes-dashboard命令空间下的资源 kubectl get …

Edge浏览器加载ActiveX控件

背景介绍 新版Edge浏览器也是采用Chromium内核,虽然没有谷歌浏览器市场占有率高,但是依托微软操作系统的优势,Edge浏览器还是发展很强劲,占据着市场第二的位置。随着微软停止服务IE浏览器,曾经风光无限的IE浏览器页退出…

LLM 大语言模型显存消耗估计与计算

LLM 大语言模型显存消耗估计与计算 1. LLM 大语言模型开发流程 在大模型(如 LLaMA-7B、GPT-3 等)的开发、训练、微调、推理和部署过程中,各个阶段的流程都涉及多个复杂的步骤。以下是详细的流程描述,涵盖训练和微调的区别&#…

docker相关内容学习

一、docker的四部分 二、镜像相关命令 三、容器相关命令

SpringCloud断路器的使用与原理解析

Spring Cloud断路器是在分布式系统中实现容错的一种方式。它的原理是通过在调用链路上添加断路器,当某个服务的调用出现故障或超时时,断路器会自动迅速地切换到快速失败模式,防止故障扩散,从而保护整个系统的稳定性。 Spring Cloud断路器的使用与原理解析如下: 一、使用断…

计算机网络知识点总结————物理层

前言 一、物理层的基本概念 物理层解决什么问题 物理层的主要特性 二、传输媒体 导引型传输媒体 同轴电缆 双绞线 光纤 非导引型传输媒体 三、数据通信的基础知识 1.术语 2.编码方式 总结 前言 我站在清醒和麻木的边缘,不能堕落也不能解脱 一、物理层的…

Godot学习笔记4——函数

GDScript中函数也叫方法或模块,与变量一样,包括自定义函数与内置函数。大部分内置函数可以对游戏内容产生实质性影响,少部分函数比较特殊。 一、函数定义 在Godot中,我们使用“func”来定义函数,后面跟函数名、括号和…

php仓库管理系统设计与实现

1.1 研究背景 随着经济一体化和电子商务的迅速发展,网络传播信息的速度打破了传统信息传递的模式,互联网的高速发展和计算机应用在各个高校进展迅速,更多信息化产品的突飞猛进,让现代的管理模式也发生了巨大的变化,本…

0503触发器的电路结构和工作原理

触发器的电路结构和工作原理 如何区分锁存器还是触发器, 看有没有这个三角符号,告诉是上升沿触发还是下降沿触发,没有三角符号就是电平触发。低电平触发就画个小圈。高电平触发就不画小圈。有小圈的三角就是下降沿触发 setup建立时间 hold 保…

ecshop网站部署

目录 步骤1 ecshop网站的部署 一、安装环境 二、设置开机启动 ​三、 测试php ​四、上传安装包 五、安装ecshop 步骤1 ecshop网站的部署 一、安装环境 yum install -y httpd mariadb-server php php-devel php-mysql 浏览器访问:192.168.30.2 二、设置开机启…

解决小程序web-view两个恶心问题

🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 1.web-view覆盖层问题 问题由来 web-view 是一个 web 浏览器组件,可以用来承载网页的容器,会自动铺满整个页面。 所以这得多恶心。。。不仅铺满&…

集合的面试题和五种集合的详细讲解

20240724 一、面试题节选二、来自于b站人人都是程序员的视频截图 (感谢人人都是程序员大佬的视频,针对于个人复习。) 一、面试题节选 二、来自于b站人人都是程序员的视频截图 hashmap: 唯一的缺点,无序&#xf…

mysql之视图的创建以及查询;

一:数据库及其表的创建: mysql> create database mydb15_indexstu; Query OK, 1 row affected (0.00 sec)mysql> use mydb15_indexstu; Database changed mysql> create table student(-> sno int primary key auto_increment,-> sname …

js语法 proxy对象拦截方法详解,proxy代理一个对象(数组,函数)的操作方法

如果还不能理解什么是proxy代理可以参考:js语法---理解反射Reflect对象和代理Proxy对象_js代理对象-CSDN博客 proxy代理对象(数组,函数),可以拦截的操作 apply---拦截方法的执行(包括直接执行,通过apply,call执行),和对…

【element ui】input输入控件绑定粘贴事件,从 Excel 复制的数据粘贴到输入框(el-input)时自动转换为逗号分隔的数据

目录 1、需求2、实现思路:3、控件绑定粘贴事件事件修饰符说明: 4、代码实现🚀写在最后 1、需求 在 Vue 2 和 Element UI 中,要实现从 Excel 复制空格分隔的数据,并在粘贴到输入框(el-input)时自动转换为逗号分隔的数据…

Pycharm 和虚拟环境的那些事?

背景: 我既有 python 又有Anaconda Pycharm新建虚拟环境: 只说两种方式 通过Virualenv Environment新建: 这里我们勾选上 Make available to all projects ,之后点击🆗 然后可以发现只有非常少的包,因为没有勾选继承 编译器的包 创建的虚拟环境一般目录如下&…

【Git多人协作开发】知识点总结

目录 知识点总结 1.创建dev分支开发 1.1在本地创建 1.1在远程创建(推荐) 2.远程分支和本地分支建立连接☞pull和push操作 2.1情况1 2.2情况2 2.3情况3 3.本地仓库对远程仓库的拉取pull操作 3.1情况1 3.2情况2 4.将开发分支的内容合并到远程m…

充电桩浪涌保护方案—保障充电设施安全稳定运行的关键

在当今新能源汽车蓬勃发展的时代,充电桩作为电动汽车的“加油站”,其重要性不言而喻。然而,由于其复杂的电气环境和暴露于户外的特点,充电桩容易受到浪涌的影响。浪涌可能来自雷电、电网故障、大功率设备的启停等,对充…