python 节点关系图_python 可视化节点关系(一):networkx

本文介绍了如何使用Python的networkx库创建有向图,检测回环,并展示了自定义节点位置的技巧。文章通过一个示例展示了如何创建和可视化类之间的关系图,并讨论了networkx在节点遮挡和交互性方面的局限性。
摘要由CSDN通过智能技术生成

前言

工作需要将各个类之间的关系用网络图描述出来。

查阅相关资料,主要有如下方式:

networkx

qtgraph

matplotlib

一、networkx

networkx是用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。

本文主要实现用networkx画有向图,检测是否有回环,每个节点的前节点、后节点。

本文这里已经封装好了相关的实现类。

# -*- coding:utf-8 -*-

import networkx as nx

import matplotlib.pyplot as plt

import copy

from networkx.algorithms.cycles import *

class GetGraph:

def __init__(self):

pass

@staticmethod

def create_directed_graph(data_dict):

my_graph = nx.DiGraph()

my_graph.clear()

for front_node, back_node_list in data_dict.items():

if back_node_list:

for back_node in back_node_list:

my_graph.add_edge(front_node, back_node)

else:

my_graph.add_node(front_node)

return my_graph

@staticmethod

def draw_directed_graph(my_graph, name='out'):

nx.draw_networkx(my_graph, pos=nx.circular_layout(my_graph), vmin=10,

vmax=20, width=2, font_size=8, edge_color='black')

picture_name = name + ".png"

plt.savefig(picture_name)

# print(&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值