python-networkx-graphviz

1:安装GraphViz,配置系统环境变量;
2:安装graphviz.whl;
3:安装pygraphviz.whl;
4:Enjoy!

Example Code:

# -*- coding: utf-8 -*-
import networkx as nx
import matplotlib.pyplot as plt
import graphviz 
import random
from networkx.drawing.nx_agraph import graphviz_layout

cm = plt.cm.jet 
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

G = nx.DiGraph()
G.edges(data = True)

G.add_node("a", size = 12)
G.add_node("b", size = 20)
G.add_node("c", size = 50)

G.add_edge("a","b", weight=1)
G.add_edge("b","a", weight=5)
G.add_edge("a","c", weight=6)
G.add_edge("b","c", weight=5)

for each in G.edges(data=True):
    print each[2]["weight"]

for each in G.edges("a",data=True):
    print each[2]["weight"]

pos=graphviz_layout(G)

#Draw nodes and labels
for each in G.nodes(data=True):
    nx.draw_networkx_nodes(G, pos, each[0], node_size = 100.0,  node_color=cm(250), alpha=0.95,with_labels = True,font_size =20, font_color ='gray')
    nx.draw_networkx_labels(G, pos, font_size=32, font_color='k', font_family='sans-serif', font_weight='normal', alpha=0.9, bbox=None, ax=None)

#Draw edges
for each in G.edges(data=True):#style = solid dashed
    nx.draw_networkx_edges(G, pos, G.edges(each[0],each[1]), edge_size=10.0,  edge_color='b', width=2, arrows=False, style='solid', alpha=0.9)

#Draw edge labels
labels =dict([((u, v), d['weight'])   for u, v, d in G.edges(data=True)])
nx.draw_networkx_edge_labels(G, pos, edge_labels=labels, label_pos=0.8, font_size=15, font_color='k', font_family='sans-serif', font_weight='normal', alpha=1.0, bbox=None, ax=None, rotate=True)


plt.show()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值