网站首页> 后端开发> python> 详解Python中四种关系图数据可视化的效果对比

详解Python中四种关系图数据可视化的效果对比

时间:2022-12-01 21:13:56 阅读:873次 来源:互联网

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展示出图形效果如下,并且默认已经添加了数据权重。

详解Python中四种关系图数据可视化的效果对比

2、放射数据模型

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

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

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

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

详解Python中四种关系图数据可视化的效果对比

3、其他模型

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

特征值向量模型

pos = nx.spectral_layout(G)

详解Python中四种关系图数据可视化的效果对比

图形边缘化分布模型

pos = nx.shell_layout(G)

详解Python中四种关系图数据可视化的效果对比

本文地址:https://www.manongw.com/article/459.html

文章来源:转载于CSDN,转载网址为https://mp.weixin.qq.com/s/mfVS8ikkSLEAfuDNSjtxtg

版权申明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 ezhongheng@126.com 举报,一经查实,本站将立刻删除。

相关文章
  • 本文主要介绍了Jupyter Notebook安装及使用方法解析的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-12 17:37
  • 本文主要介绍了Python高阶函数与装饰器函数的深入讲解的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-10 16:18
  • 本文主要介绍了Python+OpenCV图像处理——实现轮廓发现的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-24 10:20
  • 本文主要介绍了Sentry错误日志监控使用方法解析的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-12 16:11
  • 本文主要介绍了python hmac模块验证客户端的合法性的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-08 08:38
  • 本文主要介绍了Python操作word文档插入图片和表格的实例演示的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-26 14:49
  • 本文主要介绍了Python数据可视化常用4大绘图库原理详解的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-24 09:27
  • 本文主要介绍了python 下载m3u8视频的示例代码的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-12 10:22
  • 本文主要介绍了Django执行源生mysql语句实现过程解析的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-11-13 10:34
  • 本文主要介绍了python对 MySQL 数据库进行增删改查的脚本的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...
    2020-10-22 18:50