利用networkx做固定坐标的样例图

图技术

利用neo4j、networkx、dgl、python做图分析挖掘

【1】最短路径算法dijkstra
【2】基于networkx的隐性集团关系识别模型
【3】基于Neo4j的担保社群型态分析挖掘
【4】基于python求有向无环图中target到其他节点全路径
【5】有向图中任意两点的路径
【6】图基础入门
【7】知识图谱快速入门
【8】基于graphsage的欺诈用户风险识别
【9】Graph2NLP浅谈


利用networkx做固定坐标的样例图

前言

作者的工作主要聚焦于图数据的研究和分析,研究过程中,需要绘制一些样例图,手工做出来的不够美观,因此利用networkx做出样例图,可以让例子更加美观直白,所以写下这篇文章用于备用。


一、构图代码

主要分为几部分:

  1. 构造节点,例子中构造了阿拉伯数字的7个节点,从0开始;
  2. 构造关系,例子中egdes中的每个元素edge表示一条关系,分别表示了关系走向和权重;
  3. 构造节点的位置,用于展示时固定位置;
  4. 画节点、画节点属性、画关系。

利用networkx进行构图,代码如下。

import networkx as nx
import matplotlib.pyplot as plt

def main():
    G = nx.DiGraph()
    # 添加对应的边和点
    for i in range(0, 8):
        # 结点名称不能为str,desc为标签即结点名称
        G.add_node(i, desc='N'+str(i))
    # 添加边,参数name为边权值
    edges = [[0, 1, 1], [1, 2, 1], [2, 3, 1], [3, 4, 1], [4, 5, 1], [5, 6, 1], [6, 7, 1], [7, 0, 1]]
    for edge in edges:
        G.add_edge(edge[0], edge[1], name=edge[2])
    pos = [(0, 0), (4, 0), (4, 5), (3, 8),  (3, 5),  (1, 5),  (1, 8),  (0, 5)]
    # 按pos所定位置画出节点,无标签无权值
    nx.draw_networkx(G, pos, with_labels=None, node_color="tab:blue", edge_color="tab:green", node_size = 800)

    # 画出标签
    node_labels = nx.get_node_attributes(G, 'desc')
    nx.draw_networkx_labels(G, pos, labels=node_labels)

    # 画出边权值
    edge_labels = nx.get_edge_attributes(G, 'name')
    nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)

    plt.title('fixed graph', fontsize=10)
    plt.show()
if __name__ == '__main__':
    main()

二、结果图示

  1. 通过node_size参数可以调整节点的大小;
  2. 通过node_color和edge_color可以分别调整节点和关系的颜色。
    图片展示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值