一、介绍
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()
效果图:
用户的颜色是红色,商品的颜色是其他颜色
来源:CSDN
作者:十八口丁
链接:https://blog.csdn.net/qq_37797234/article/details/103468933