数据可视化:四种关系图数据可视化的效果对比!

news2025/2/26 2:51:12

python关系图的可视化主要就是用来分析一堆数据中,每一条数据的节点之间的连接关系从而更好的分析出人物或其他场景中存在的关联关系。

这里使用的是networkx的python非标准库来测试效果展示,通过模拟出一组DataFrame数据实现四种关系图可视化。

其余还包含了pandas的数据分析模块以及matplotlib的画图模块。

若是没有安装这三个相关的非标准库使用pip的方式安装一下即可。

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/

pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple/

pip install networkx -i https://pypi.tuna.tsinghua.edu.cn/simple/

分别将使用到的python模块导入到我们的代码块中,就可以开始开发了。

# Importing the matplotlib.pyplot module as plt.
import matplotlib.pyplot as plt

# Importing the pandas module and giving it the alias pd.
import pandas as pd

这里为了避免中文乱码的情况,分别对字体和编码进行了统一化的设置处理。

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

# Importing the networkx module and giving it the alias nx.
import networkx as nx

这里我们采用了有向图的模式来进行演示,有向图也是在生产过程中最常用的一种可视化模式。

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

初始化一个DataFrame数据对象作为关系图生成的数据来源。

data_frame = pd.DataFrame(
    {
        'A': ['1', '2', '3', '4', '5', '6'],
        'B': ['a', 'b', 'c', 'd', 'e', 'f'],
        'C': [1, 2, 3, 4, 5, 6]
    }
)

1、随机分布模型

使用随机分布模型的生成规则时,生成的数据节点会采用随机的方式进行展示,生成的数据节点之间相对比较分散更容易观察数据节点之间的关系指向。

for i, row in data_frame.iterrows():
    G.add_edge(row['A'], row['B'], weight=row['C'])

pos = nx.random_layout(G)

nx.draw(G, pos, with_labels=True, alpha=0.7)

labels = nx.get_edge_attributes(G, 'weight')

nx.draw_networkx_edge_labels(G, pos, edge_labels=labels)

plt.axis('equal')

plt.show()

通过matplotlib展示出图形效果如下,并且默认已经添加了数据权重。

随机分布模型.png

2、放射数据模型

放射状数据模型,顾名思义就是以一个数据节点为中心向周边以发散状的模式进行分布,使用数据节点指向多个节点的可视化展示。

缺点是如果数据不够规范的情况下会展示成一团乱麻的情况,需要经过特殊的可视化处理。

使用方法这里直接将上述随机分布模型的pos模型直接替换成下面的放射状数据模型即可。

pos = nx.spring_layout(G, seed=4000, k=2)

放射状模型.png

3、其他模型

其余两种方式使用同样的方式将随机分布模型中pos模型进行替换即可实现,这里分别展示以下实现效果。

特征值向量模型

pos = nx.spectral_layout(G)

特征值模型.png

图形边缘化分布模型

pos = nx.shell_layout(G)

圆形边缘化模型.png

往期精彩

python 如何实现数据可视化大屏布局!

python自动化:桌面壁纸下载器,满足你对桌面壁纸的无限畅想!

推荐一款python数据更便捷的数据处理方式!

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

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

相关文章

【网页设计】期末大作业html+css(音乐网站)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Ubuntu 20.04.5安装无线网卡RTL8821CE驱动

陈拓 2022/11/26-2022/11/26 准备工作 查看网络设备WiFi设备未驱动。 查看WiFi设备型号 lspci | grep -i wireless 或 lspci -nn | grep -i net 设备代号10ec:c821可以用来查询验证WiFi设备型号。 在网站PCI devices查询无线设备型号: Wifi设备型号&#xff1a…

“面向大厂编程”一线互联网公司面试究竟问什么?打入内部针对性学习!

今年来,由于寒冬影响,各大公司都缩减了HC,甚至是采取了“裁员”措施,在这样的大环境之下,想要获得一份更好的工作,必然需要付出更多的努力。 但在最近的一份工作报告中显示,开发者的热门选择依…

Mysql语法四:索引查找和了解何为事务

目录 1.索引 1.1:使用 1.1.1:查看索引 1.2.2:创建索引 1.1.3:删除索引 1.2:索引查询的原理 1.2.1:何为 B树 2.事务 2.1:特性 2.1.1:原子性 2.1.2:一致性 2.1.3&#xff1…

(附源码)计算机毕业设计Java坝上长尾鸡养殖管理系统

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

博易大师期货程序化交易软件,期货买卖点提示量化分析系统幅图指标公式,期货波段进场点信号

期货指标公式不是交易的圣杯,也不是期货亏损后的救命稻草。请理性运用指标公式,独立决策,盈亏自负。期货市场具有不确定性和不可预测性的,请正常对待和使用指标公式! 期货指标公式是通过数学逻辑角度计算而来,仅是期货…

【Kotlin 协程】协程底层实现 ④ ( 结构化并发 | viewModelScope 作用域示例 )

文章目录一、viewModelScope 作用域作用二、viewModelScope 作用域示例常见的 CoroutineScope 协程作用域 : GlobalScope : 该作用域是 进程级别的 , 与应用进程同级 , 即使 Activity 被销毁 , 协程任务也可以继续执行 ;MainScope : 该 作用域仅在 Activty 中 , 如果 Activity…

VuePress构建一个文档管理网站

序言 目前无论笔记还是项目文档,大部分我都会通过 Markdown来记录,并且大部分文档写完都只存在自己电脑上,每次查找起来都需要耗费一些时间 自己的写的一部分技术教程由于初次记录时了解知识不多,内容存在偏差或考虑不全面&…

数仓搭建-ODS层

数仓搭建-ODS层 1)保持数据原貌不做任何修改,起到备份数据的作用。 2)数据采用LZO压缩,减少磁盘存储空间。100G数据可以压缩到10G以内。 3)创建分区表,防止后续的全表扫描,在企业开发中大量使用…

ILRuntime使用指南

前言 最近闲着没事做,于是用ILRuntime做了一个小游戏中间遇到一些坑,对于ILRuntime的认识更清楚了。其它技巧自动转换DLL 设置引用文件夹 我们在热更项目里面写代码的时候需要用到Unity的DLL,可是这些DLL引用起来查找就很麻烦。这时候可以…

带你了解LINUX反弹Shell的各种姿势(超详细)

简介 LInux反弹Shell(Reveser Shell), 也可以称为反向Shell, 由被控制端主动向控制端发送请求建立通讯, 随后将执行命令的结果输出到控制端, 本质上是网络概念的客户端与服务端的角色反转 本篇文章介绍LINUX反弹Shell的多种姿势, 在真实的渗透环境中, 根据客户端存在哪些命令…

深度学习求解微分方程系列四:一种基于自适应激活函数的PINN求解方法—burger方程逆问题

下面我将介绍内嵌物理知识神经网络(PINN)求解微分方程。首先介绍PINN基本方法,并基于自适应激活函数的PINN求解框架利用Pytorch实现求解含时间项的一维burger方程逆问题。 内嵌物理知识神经网络(PINN)入门及相关论文 深…

视频怎么消除人声?一款视频去人声软件,轻松去除视频人声

视频消除人声是一个优质的视频文件必须经历的步骤。当前,分享视频的用户越来越多,只有原创且有亮点的视频才能更吸引人。但是很多时候自己录制的原创视频总是有各种声音,所以很难制作出一个好的视频,获得更多的关注。 那视频怎么消…

制霸GitHub热榜的Spring Cloud Alibaba源码笔记,果然是阿里传出的

7年前面试最常问的并且可以顺利拿到高薪的技能是 Dubbo 3年前面试,只要你简历上有Spring Cloud 项目的相关经验,肯定会打动面试官,现在呢?恐怕简历上有Dubbo和简单的Spring Cloud技术和经验是无法让面试官高看你的。 Spring Cloud Alibaba 近几年在受到国内不少开…

我们都有光明的前途·OI 生涯回忆录

挺震撼的,不知不觉,我就从一个什么也不懂的萌新,成长为一个能够独立思考的普通 OIer,直到不得不面对眼前的退役生活了。 近四年半的时间,我在洛谷、CodeForces、Atcode、Uoj、Loj 等各大网站都有做题记录,重…

ST-link/V2引脚定义和更新固件说明

LED状态说明 闪烁红色:ST-LINK/V2连接到计算机后,第一次USB枚举过程 红色:ST-LINK/V2与计算机已建立连接 闪烁绿色/红色:目标板和计算机在进行数据交换 绿色:通讯完成 橙色(红色绿色)&#xff1…

iwebsec靶场 SQL注入漏洞通关笔记5- updatexml注入(报错型盲注)

系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入(宽字节注入)_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记3- bool注入(布尔型盲注&#…

Verilog 时序检查

setup hold recovery removal width period 指定路径延迟,目的是让仿真的时序更加接近实际数字电路的时序。利用时序约束对数字设计进行时序仿真,检查设计是否存在违反(violation)时序约束的地方,…

鲲鹏devkit开发套件——编译调试工具介绍

鲲鹏devkit编译调试工具介绍 编译调试插件是其中的一个子工具。编译调试插件即插即用,支持一键安装服务器鲲鹏编译器,支持单机下Nvidia GPU应用调试能力,通过统一调试界面调试GPU应用,实现cuda-gdb调试能力,以及鲲鹏平…

Spring Security 使用JSON格式参数登录的两种方式

前言 在 Spring Security 中,默认的登陆方式是以表单形式进行提交参数的。可以参考前面的几篇文章,但是在前后端分离的项目,前后端都是以 JSON 形式交互的。一般不会使用表单形式提交参数。所以,在 Spring Security 中如果要使用…