python 画二部图

news2024/11/26 5:22:10

1. 特色二部图

修改节点与边颜色、大小等

import networkx as nx
import matplotlib.pyplot as plt
plt.figure('设备-用户关系图', figsize=(4, 6))  # 设置画布大小

list_fid = [1, 2, 3, 4]  # 添加设备节点
list_uid = ["a", "b", "c"]  # 添加用户节点
edges = [(1, "a"), (1, "b"), (2, "b"), (2, "c"), (3, "c"), (4, "a")]  # 添加关系
# --------- 在图中添加节点与边 ---------
B = nx.Graph()
B.add_nodes_from(list_fid, bipartite=0)
B.add_nodes_from(list_uid, bipartite=1)
B.add_edges_from(edges)
# --------- 设定坐标 画节点 ---------
pos_fid = dict((n, (1, i*1.18)) for i, n in enumerate(list_fid))  # 可通过乘系数,调整节点分布
pos_uid = dict((n, (2, i*1.58)) for i, n in enumerate(list_uid))
nx.draw_networkx_nodes(G=B, pos=pos_fid, nodelist=list_fid, node_size=300, node_color='red', margins=0.001)
nx.draw_networkx_nodes(G=B, pos=pos_uid, nodelist=list_uid, node_size=300, node_color='blue', margins=0.001)
# --------- 设定坐标 画节边 ---------
pos = {}  # 全部节点坐标
pos.update(pos_fid)
pos.update(pos_uid)
nx.draw_networkx_edges(B, pos, edges)
# --------- 画节点标签  ---------
labels_fid = dict(zip(list_fid, list_fid))  # 节点对应的标签
labels_uid = dict(zip(list_uid, list_uid))  # 节点对应的标签
nx.draw_networkx_labels(B, pos=pos_fid, labels=labels_fid, font_size=12.5)  # 画标签
nx.draw_networkx_labels(B, pos=pos_uid, labels=labels_uid, font_size=12.5)  # 画标签
# --------- 保存图片 ---------
plt.savefig("relation1.png", dpi=120)
plt.show()

如下:

 从文件获取节点和边数据源

# 获得 fid-uid 关系
def get_uid_fid_relation():
    df = pd.read_csv('data/uid_fid.csv', dtype=str)
    relation_uid_fid_list = []
    for line in df.values:
        relation_uid_fid_list.append((line[0], line[1]))
    return relation_uid_fid_list 

# 获得设备节点
def get_fid_node_list():
    df = pd.read_csv('data/fid.csv', dtype=str)
    list_fid = df['fid'].to_list()
    return list_fid

# 获得用户节点
def get_uid_node_list():
    # df = pd.read_csv('data/uid.csv', header=0, names=['user_id'], dtype=str)
    df = pd.read_csv('data/uid.csv', dtype=str)
    list_uid = df['user_id'].to_list()
    return list_uid

if __name__ == '__main__':
    list_fid = get_fid_node_list()  # 设备节点
    list_uid = get_uid_node_list()  # 用户节点
    edges = get_uid_fid_relation()  # 关系

11

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

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

相关文章

【HCIP】14.BGP反射器

反射器规则 非非不反 如果路由反射器从自己的非客户机学习到的一条IBGP路由,则它将该路由反射给所有客户如果RR从自己的客户机学习到一条IBGP路由,则反射给所有非客户,以及除了该客户之外的所有客户如果RR学习到的EBGP路由,则反…

【高级IO】- 多路转接之 poll | epoll

目录 I/O多路转接 - poll poll 函数 poll 服务器 poll 服务器 poll 的优点 poll 的缺点 I/O 多路转接 - epoll epoll 的相关系统调用 epoll_create 函数 epoll_ctl 函数 epoll_wait 函数 epoll 工作原理 epoll 服务器 ​编辑 epoll 的优点(与 sele…

vr游乐场项目投资方案VR主题游乐馆互动体验

VR文旅景区沉浸互动体验项目是指利用虚拟现实技术在文旅景区中创建沉浸式的互动体验项目。通过虚拟现实技术,游客可以身临其境地体验景区的风景和文化,与虚拟场景中的元素进行互动。 普乐蛙VR设备 普乐蛙VR设备案例分享 这种项目可以为游客带来全新的旅游…

2023年中秋月饼市场趋势分析(月饼京东销售数据分析)

中秋将至,月饼作为节令食品将再次掀起消费热潮。今年月饼市场的需求如何呢,是更受欢迎还是热度有所降低,结合数据我们一起来看今年月饼市场的销售表现。 在这里,我们分别选取了2022年第31周-32周和2023年第31周-32周(…

抖音推出AI机器人,竟被鸡兔同笼难倒

自从Chatgpt横空出世爆火后,咱国内也掀起了一波AI的风潮,前几期有评测过百度的“文心一言”,总的来说体验还不错,但是距离Chatgpt还是有上升的空间,因为它的上下文理解还是不够智能。 百度有文心一言,阿里…

基于CentOS搭建私有仓库harbor

环境: 操作系统:CentOS Linux 7 (Core) 内核: Linux 3.10.0-1160.el7.x86_64 目录 安装搭建harbor (1)安装docker编排工具docker compose (2)下载Harbor 安装包 (3&…

【操作系统】寄存器

概念 寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路,但这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个锁存器或触发器…

docker与docker-compose搭建redis1主2从3哨兵

docker安装redis docker pull redis:latest创建目录结构 用于挂载数据卷配置文件等 运行redis容器 主redis配置 下面这种方式挂载的配置文件不生效。 docker run -d \--name master_redis_6379 \-p 6379:6379 \--restart unless-stopped \-v /mydata/master_redis/data:/da…

IDEA中导入多module的Maven项目无法识别module的解决办法

首先举个栗子 这是正常的多module工程(spring cloud项目) 正常工程.png 这是导入出现问题的多module工程 导入出现问题的工程.png 原因: 出现该问题,是由于打开工程的时候IDEA只编译了最外层的pom.xml文件,而内部的…

在线成绩查询

在如今快节奏的社会中,家长们越来越重视孩子的学习情况。为了满足家长们对孩子学习情况的关注,老师们需要一个方便、快速、及时的学生成绩在线查询系统。 今天,我将向大家推荐一个教师必备的工具——易查分!相比传统的自行开发的成…

前端下载文件方式(Blob)

以下以下载图标svg文件为例,实现点击按钮下载文件,其中icon结构如下: const DownloadSvg (props) > {function download(downfile) {const tmpLink document.createElement("a");const objectUrl URL.createObjectURL(downfi…

恒驰喜讯 | 荣获2023超聚变合作伙伴大会“聚心同力销售支撑奖”

“创价值、同信念、共成长”,8月18日,2023超聚变合作伙伴大会在北京举行。来自全国各地超过1500家行业、商业、服务生态伙伴,共同探讨算力产业发展。聚菁英,共赢算力未来。作为超聚变的核心合作伙伴,上海恒驰信息系统有…

《Go 语言第一课》课程学习笔记(十)

复合数据类型 同构复合类型:从定长数组到变长切片 由多个同构类型(相同类型)或异构类型(不同类型)的元素的值组合而成,这类数据类型在 Go 语言中被称为复合类型。 数组有哪些基本特性? Go 语…

SOA通信中间件常用的通信协议

摘要: SOA(面向服务的架构)的软件设计原则之一是模块化。 前言 SOA(面向服务的架构)的软件设计原则之一是模块化。模块化可以提高软件系统的可维护性和代码重用性,并且能够隔离故障。举例来说,…

【算法随记】在计算过程中模的情况

https://leetcode.cn/problems/power-of-heroes/ 计算过程中,可以放心模的情况: 加减乘 先模再加再模和直接加再模一样 a m o d m b m o d m ≡ a b ( m o d m ) a\mod mb\mod m ≡ ab \ (\mod m) amodmbmodm≡ab (modm) 先模再减再模和直接减再模…

linux安装 MySQL8 并配置开机自启动

目录 1.下载 mysql 安装包 2.上传并解压 mysql 3.修改 mysql 文件夹名 4.创建mysql 用户和用户组 5.数据目录 (1)创建目录 (2)赋予权限 6.初始化mysql (1)配置参数 (2)配置环…

python爬虫实战(3)--爬取某乎热搜

1. 分析爬取地址 打开某乎首页,点击热榜 这个就是我们需要爬取的地址,取到地址某乎/api/v3/feed/topstory/hot-lists/total?limit50&desktoptrue 定义好请求头,从Accept往下的请求头全部复制,转换成json headers {Accep…

关于2023年8月19日PMI认证考试准考信下载及考场规定等有关事项

各位考生: 为保证参加2023年8月19日PMI项目管理资格认证考试的每位考生都能顺利进入考场参加考试,请完整阅读本通知内容。 一、关于准考信下载 为确保您顺利进入考场参加8月份考试,请及时登录本网站个人系统下载并打印准考信,准考…

Git+Gitee使用分享

GitGitee快速入门 创建仓库 ​ ​ ​ 初始化本地仓库 验证本地git是否安装好 打开cmd窗口,输入git ​ 这样就OK。 Git 全局设置:(只需要设置一次) 这台电脑如果是第一次使用git,就需要这样初始化一下,这样才知道是谁提交到仓库了。 git confi…