Python如何使用Networkx实现复杂的人物关系图?

1 简单引入

  • 日常工作、生活中我们经常会遇到一些复杂的事务关系,比如人物关系,那如何才能清楚直观的看清楚这些任务关系呢?
  • 比如我们从网上搜索1个人物关系图,大家看看:

声明:以下图片来源于网络,如果涉及版权问题,请联系作者删除。本文仅供学习,不做他用。

在这里插入图片描述

  • 那我们如何使用Python来实现类似的人物关系图呢?
  • 这里我们需要用到Python的networkx模块,它可以帮助我们很好的显示我们需要的效果。

2 关于Networkx

2.1 Networkx简单说明

  • NetworkX 是一个用于创建、操作和研究复杂网络的 Python 库;
  • 可以创建、分析和可视化各种类型的网络,例如社交网络、Web图、生物网络等;
  • NetworkX 可以用来创建各种类型的网络,包括有向图和无向图;
  • 提供各种方法来添加、删除和修改网络中的节点和边;
  • NetworkX 还提供许多图的算法和分析工具;
  • NetworkX还提供多种方式来可视化网络。

2.2 Networkx部分源码

  • NetworkX支持四种图,从以下源码可以看出:
Python37\Lib\site-packages\networkx\classes\__init__.py

from .graph import Graph
from .digraph import DiGraph
from .multigraph import MultiGraph
from .multidigraph import MultiDiGraph
from .ordered import *

from .function import *

from networkx.classes import filters

from networkx.classes import coreviews
from networkx.classes import graphviews
from networkx.classes import reportviews

  • 四种图即为:
说明
Graph 无多重边无向图
DiGraph 无多重边有向图
MultiGraph 有多重边无向图
MultiDiGraph 有多重边有向图
  • 而本文我们要用的是 Graph,它主要是用点和线来刻画离散事务集合,每对事务之间以某种方式相联系的数学模型;
  • Graph可以用来表示的关系图为人物关系图、流程图等等;
  • 以下为Graph的几个方法源码:
Python37\Lib\site-packages\networkx\classes\graph.py

def draw_networkx_nodes(
    G,
    pos,
    nodelist=None,
    node_size=300,
    node_color="#1f78b4",
    node_shape="o",
    alpha=None,
    cmap=None,
    vmin=None,
    vmax=None,
    ax=None,
    linewidths=None,
    edgecolors=None,
    label=None,
    margins=None,
):
    """Draw the nodes of the graph G.

def draw_networkx_edges(
    G,
    pos,
    edgelist=None,
    width=1.0,
    edge_color="k",
    style="solid",
    alpha=None,
    arrowstyle="-|>",
    arrowsize=10,
    edge_cmap=None,
    edge_vmin=None,
    edge_vmax=None,
    ax=None,
    arrows=None,
    label=None,
    node_size=300,
    nodelist=None,
    node_shape="o",
    connectionstyle="arc3",
    min_source_margin=0,
    min_target_margin=0,
):
    r"""Draw the edges of the graph G.

def draw_networkx_labels(
    G,
    pos,
    labels=None,
    font_size=12,
    font_color="k",
    font_family="sans-serif",
 
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值