import networkx as nx
import matplotlib.pyplot as plt
输入:
G=nx.Graph([(1,2),(1,3),(2,3),(3,4),(4,5),(4,6),(4,7),(5,6),(5,7),(6,7),(6,11),(7,8),(8,9),(8,10),(9,10),(9,12)])
答:
nx.draw_networkx(G)
plt.show()
得:
求:每个完全子图的颜色都不一样
答:
G=nx.Graph([(1,2),(1,3),(2,3),(3,4),(4,5),(4,6),(4,7),(5,6),(5,7),(6,7),(6,11),(7,8),(8,9),(8,10),(9,10),(9,12)])
#colors = [1,1,1,2,2,2,2,3,3,3,4,5] #用数组来区分颜色,产生的颜色是随机的
colors = ['r','r','r','b','b','b','b','y','y','y','w','g'] #给定每个节点的颜色
#pos=nx.spring_layout(G)这句给定了节点的布局为spring型,
# - circular_layout:节点在一个圆环上均匀分布
#- random_layout:节点随机分布
#pos=nx.spring_layout(G)这句给定了节点的布局为spring型,
# - circular_layout:节点在一个圆环上均匀分布
#- shell_layout:节点在同心圆上分布
#- spring_layout: 用Fruchterman-Reingold算法排列节点(这个算法我不了解,样子类似多中心放射状)
nx.draw_networkx(G,pos=nx.spring_layout(G),node_color=colors)
得:
注:另外还有一种画法是先画节点,再画边,有兴趣可以探究实验