Python语言开发的图论与复杂网络建模工具—networkx节点染色

╄→尐↘猪︶ㄣ 提交于 2019-12-10 11:33:55

一、介绍

networkx是一个用Python语言开发的图论与复杂网络建模工具。
networkx支持创建简单无向图、有向图和多重图;内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富,简单易用。

数据段

下面是画图所用到的数据(items2.txt):

name,num,goods
小明,1,橙子
小明,1,苹果
小明,1,番薯
小红,1,柚子
小红,1,苹果
小红,1,火龙果
1,1,番薯
1,1,香蕉
小花,1,苹果
小花,1,番薯
小花,1,香蕉
张三,1,橙子
张三,1,香蕉

代码段

其中颜色向量的顺序是节点的顺序(如:小明1、橙子2、苹果3、番薯4…)

# coding = utf-8
import csv

from pylab import *
import networkx as nx
def re_networkx():
    g=nx.Graph()
    with open('items2.txt', 'r', encoding='utf-8')as csvfile:
        # 调用csv中的DictReader函数直接获取数据为字典形式
        reader = csv.DictReader(csvfile)
        # 创建一个counts计数一下 看自己一共添加了了多少条数据
        for each in reader:
            print(each['name'])
            print(each['goods'])
            g.add_edge(each['name'],each['goods'])
    line = 'r 0.9 0.9 0.8 r 0.6 0.6 r 0.8 r r'  # 读取颜色向量
    colors = (line.split(' '))  # 颜色向量
    print(colors)
    nx.draw(g, with_labels=True, node_color=colors)
    plt.savefig('network_customers.png')
    plt.show()
re_networkx()

效果图:

用户的颜色是红色,商品的颜色是其他颜色
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!