NetworkX是一个简单多样化能快速生成网络图形的Python库
1 说明:
=====
1.1 NetworkX是一个Python包,用于创建、操纵和研究复杂网络的结构、以及学习复杂网络的结构、功能及其动力学。
1.2 NetworkX测试的代码覆盖率超过90%,是一个多样化,易于教学,能快速生成图形的Python平台。
1.3 NetworkX提供了适合各种数据结构的图表、二合字母和多重图,还有大量标准的图算法,网络结构和分析措施,可以产生随机网络、合成网络或经典网络,且节点可以是文本、图像、XML记录等,并提供了一些示例数据(如权重,时间序列)。
1.4 附加知识:matplotlib的中文设置的另外一种方法。
2 准备:
=====
2.1 官网:https://github.com/networkx/networkx http://networkx.github.io/ https://pypi.org/project/networkx/ https://networkx.github.io/documentation/stable/tutorial.html
2.2 安装:pip install networkx
3 Erdos Renyi:
===========
3.1 代码:随机图import matplotlib.pyplot as plt #用来显示图 from networkx import nx n = 10 # 10 nodes=节点 e = 20 # 20 edges=边线 #随机图形 G = nx.gnm_random_graph(n, e) #nx.draw(G) #默认节点node内不显示阿拉伯数字 nx.draw(G,with_labels=True) plt.show()
3.2 图:
4 Node Colormap:
==============
4.1 代码:import matplotlib.pyplot as plt import networkx as nx #24,就是n=node,画椭圆 G = nx.cycle_graph(24) #位置,iterations=迭代,建议200,否则就不是椭圆 pos = nx.spring_layout(G, iterations=200) #cmap=代表colormap=颜色图 #nx.draw(G, pos, node_color=range(24), node_size=800, cmap=plt.cm.Blues) #nx.draw(G, pos, node_color=range(24), node_size=800, cmap=plt.cm.Reds) #with_labels=True 在节点内显示阿拉伯数字标签 nx.draw(G, pos, node_color=range(24), node_size=800, cmap=plt.cm.Reds,with_labels=True) plt.show()
4.2 图:
5 无向图、添加子图:
=======
5.1 代码:import networkx as nx import matplotlib.pyplot as plt G = nx.Graph() #建立一个空的无向图G G.add_node("a") #添加一个节点1 G.add_nodes_from(["b","c","d","e"]) #加点集合 #添加子图 """ G.add_node(0) H=[1,2,3,4,5,6,7,8,9] G.add_nodes_from(H) """ #等同上面 #H=[0,1,2,3,4,5,6,7,8,9] #方法一 H=range(10) #方法二:python知识复习 G.add_nodes_from(H) #显示节点标签 nx.draw(G, with_labels=True) plt.show()
5.2 图:
6 中文显示:
=========
6.1 matplotlib另外一种中文显示设置。
6.2 本机操作示范:
6.2.1 在root下进入本机文件夹:注意本机为linux操作系统,window大同小异。
file:///usr/local/python3.8/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf
6.2.2 将自己的中文字体:hwfs.ttf(华文仿宋字体==用来显示中文的)放在ttf文件夹下。
6.2.3 因为matplotlib默认调用的为DejaVuSans.ttf字体文件,所以先将DejaVuSans.ttf复制一个,备份,取名为DejaVuSans_beifen.ttf,然后将hwfs.ttf改名为DejaVuSans.ttf,就可以显示中文了,超级简单。
7 人物关系权重图:weighted_graph
===========================
7.1 数据是虚拟的,这个很实用,人物关系权重图。
7.2 代码:import matplotlib.pyplot as plt import networkx as nx G = nx.Graph() #节点关系和权重 G.add_edge("李白", "王维", weight=0.6) G.add_edge("李白", "杜甫", weight=0.2) G.add_edge("杜甫", "苏轼", weight=0.1) G.add_edge("杜甫", "王昌龄", weight=0.7) G.add_edge("杜甫", "杜牧", weight=0.9) G.add_edge("李白", "苏轼", weight=0.3) #定义权重与人物关系的指标赋值 elarge = [(u, v) for (u, v, d) in G.edges(data=True) if d["weight"] > 0.5] esmall = [(u, v) for (u, v, d) in G.edges(data=True) if d["weight"] <= 0.5] #建立布局 pos = nx.spring_layout美化作用 pos = nx.spring_layout(G) #节点布局和大小设置 nx.draw_networkx_nodes(G, pos, node_size=700) #边的设置和宽度设置等 nx.draw_networkx_edges(G, pos, edgelist=elarge, width=6) #style: 边的样式(默认为实现,可选: solid|dashed|dotted,dashdot) nx.draw_networkx_edges(G, pos, edgelist=esmall, width=6, alpha=0.5, edge_color="b", style="dashed") # labels标签名和字体大小设置 nx.draw_networkx_labels(G, pos, font_size=10) #已经设置好中文显示 #关闭网格线,不显示坐标轴线 plt.axis("off") plt.show()
7.3 图:
8 高级版:
=======
8.1 代码省略。
8.2 结合flask、d3.js的网页动画的networkx。
===自己整理并分享出来===
喜欢的人,请点赞、关注、评论、转发和收藏。
孩子生病前的这些变化,家长们务必要知道各位宝妈们注意啦!如果您的宝宝有以下一些症状的话,那有可能就是要生病的前兆了。希望宝妈们可以收藏关注,带您了解更多方面宝宝的基本病因,及时预防。1眼角经常伴有眼屎如果您的宝宝眼角经
秋季怀孕要三防,不懂这些的准妈妈们就要遭罪了秋季怀孕的你已经准备好做一个好妈妈了吗?秋孕要三防,知道了这些才能全心全意的保护你和你心爱的宝宝!秋孕三防第一防防止便秘秋季气候干燥,所以准妈妈们一定要吃好,多补充水分,防止便秘。
宝宝怎么午睡,睡多久最好?知道这些才能让宝宝更健康成长相信很多的宝妈们都希望宝宝有一个良好的午睡,可以让宝宝有充足的睡眠健康成长。但是作为一个宝宝怎样的午睡,睡多久才算健康呢?首先这个观点就是不正确的。因为午睡也要分宝宝的。有的宝宝就
孩子不听话该不该打?不知道这些问题就大了孩子越长大越不听话要怎么教育呢?能不能动手打孩子呢?相信这些问题困惑着很多的宝妈宝爸们。动手打孩子怕打坏了,不动手是真的气人。那么接下来看完这篇文章你就能解决掉那些问题了!孩子不听
生宝宝到底有多痛?别再听那些不懂的人以讹传讹了相信如果你作为一个准妈妈已经做好了分娩疼痛的心理准备。但是你真的知道生宝宝到底有多疼吗?此前在网上就看到众多男生自愿体验模拟分娩阵痛的消息轰动网络,只仅过了半个小时,众多男生就不得
为人母,一定要学会挑选牛奶,要符合这三大标准隐秘的角落大火之后,网友们都在讨论,为什么朱朝阳的妈妈那么热衷于强迫朱朝阳喝牛奶。其实,对于正在发育的孩子来说,每天一杯牛奶真的很重要,但是,牛奶怎么挑选?什么时间喝最好?首先,在
既没感冒也没发烧,宝宝单纯咳嗽几声,也要重视有些孩子既没有感冒,也没有发烧,但就是要咳嗽,这让妈妈们摸不着头脑。如果是新生儿,即使偶尔咳嗽一两声,也要引起重视,可能是新生儿肺炎。如果是大龄儿童,则可能提醒宝宝积食了。新生儿肺
限盐有利于身体健康,这样做能轻松实现随着生活水平提高,人们的健康意识越来越强。如今,国家也在积极推进限盐,那么,居民们怎么做才能够便捷的做到限盐呢?首先,限盐极为重要,因为盐重了,容易诱发高血压和心血管疾病。限盐却很
有多少妈妈入了断奶后要排奶的坑?别再被骗了有很多新妈妈在断奶后,会被人告知要及时排残奶,或者有催乳师苦口婆心奉劝你要排残奶,否则会引发一系列严重的后果,例如乳腺癌,乳腺炎,乳房不美观等等问题。例如以下这些网友的亲身经历天黑
为什么孕妈最怕验孕棒相隔多天检测,仍旧一深一浅?第一次怀孕的准妈妈,在最初使用验孕棒时,都是充满了期待。有些准妈妈使用验孕棒,两条杠颜色都很深,而有些准妈妈却是一深一浅,是什么原因造成这个差别的呢?首先,我们要搞清楚这两条线到底
爱玩这些玩具的孩子,通常都是高智商的学霸随着孩子一天天长大,在观察孩子的过程中,父母对孩子的了解也越来越多。其实,通过孩子爱玩的玩具,就可以看出孩子的智力水平。如果你家是男孩子,对积木玩具情有独钟,总爱搭建各种各样的积木