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

目录

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文件,用于展示图形。

关系筛选

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Encarta1993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值