脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - networkx库绘制带权图给无权图加权重输出

networkx库绘制带权图给无权图加权重输出

2023-01-13 13:38zheng____ Python

这篇文章主要为大家介绍了Python networkx库绘制带权图给无权图加权重并输出权重的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

问题

最近在研究图学习,在用networkx库绘图的时候发现问题。

?
1
2
3
4
5
6
7
8
9
10
11
'''
author:zheng
time:2020.10.23
'''
import networkx as nx
import random
g = nx.karate_club_graph()  # 空手道俱乐部
for u,v in g.edges:
    print(u,v)
    g.add_edge(u, v, weight=random.uniform(0, 1))  # 权值为(0,1)间的随机数
print(g.edges())

输出结果

[(0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (0, 8), (0, 10), (0, 11), (0, 12), (0, 13), (0, 17), (0, 19), (0, 21), (0, 31), (1, 2), (1, 3), (1, 7), (1, 13), (1, 17), (1, 19), (1, 21), (1, 30), (2, 3), (2, 7), (2, 8), (2, 9), (2, 13), (2, 27), (2, 28), (2, 32), (3, 7), (3, 12), (3, 13), (4, 6), (4, 10), (5, 6), (5, 10), (5, 16), (6, 16), (8, 30), (8, 32), (8, 33), (13, 33), (19, 33), (31, 24), (31, 25), (31, 28), (31, 32), (31, 33), (30, 32), (30, 33), (9, 33), (27, 23), (27, 24), (27, 33), (28, 33), (32, 14), (32, 15), (32, 18), (32, 20), (32, 22), (32, 23), (32, 29), (32, 33), (33, 14), (33, 15), (33, 18), (33, 20), (33, 22), (33, 23), (33, 26), (33, 29), (23, 25), (23, 29), (25, 24), (29, 26)]

发现了问题,我明明通过random.uniform(0, 1)随机设置了权重为什么在结果输出中并未显示,是输入权重的问题,还是结果展示的问题。

?
1
2
3
4
5
6
7
8
9
10
'''
author:zheng
time:2020.10.23
'''
import networkx as nx
import random
g = nx.karate_club_graph()  # 空手道俱乐部
for u,v in g.edges:
    g.add_edge(u, v, weight=random.uniform(0, 1))  # 权值为(0,1)间的随机数
print(g.edges(data=True))

大家看看两个代码有没有什么不同,在G.edges(data=True)中添加了data=True

此时输出结果:

?
1
[(0, 1, {'weight': 0.49899129531032826}), (0, 2, {'weight': 0.7493395367183026}), (0, 3, {'weight': 0.9805046801748599}), (0, 4, {'weight': 0.644560549909913}), (0, 5, {'weight': 0.022461095194206915}), (0, 6, {'weight': 0.39855273941801683}), (0, 7, {'weight': 0.9167666610641618}), (0, 8, {'weight': 0.3736839965822629}), (0, 10, {'weight': 0.1685687039463848}), (0, 11, {'weight': 0.5900599708379352}), (0, 12, {'weight': 0.49772285717726605}), (0, 13, {'weight': 0.6988903320924684}), (0, 17, {'weight': 0.8108991409995218}), (0, 19, {'weight': 0.21743421569163335}), (0, 21, {'weight': 0.687637570308398}), (0, 31, {'weight': 0.13180440967486262}), (1, 2, {'weight': 0.0603379086168323}), (1, 3, {'weight': 0.9536653778354264}), (1, 7, {'weight': 0.1680232359702576}), (1, 13, {'weight': 0.23821372652905115}), (1, 17, {'weight': 0.6861169007257469}), (1, 19, {'weight': 0.006553274592374314}), (1, 21, {'weight': 0.23452495215883118}), (1, 30, {'weight': 0.7638165639559286}), (2, 3, {'weight': 0.18381620307197954}), (2, 7, {'weight': 0.08671998389998026}), (2, 8, {'weight': 0.7395899045684956}), (2, 9, {'weight': 0.5973616237830935}), (2, 13, {'weight': 0.25253256663029156}), (2, 27, {'weight': 0.4151629971620948}), (2, 28, {'weight': 0.6830413630275037}), (2, 32, {'weight': 0.10877354662752325}), (3, 7, {'weight': 0.3165078261209674}), (3, 12, {'weight': 0.3258985972202395}), (3, 13, {'weight': 0.5617183737707032}), (4, 6, {'weight': 0.9944831897451706}), (4, 10, {'weight': 0.4258447405573552}), (5, 6, {'weight': 0.17102663345956715}), (5, 10, {'weight': 0.41020894392823837}), (5, 16, {'weight': 0.24048864347638477}), (6, 16, {'weight': 0.5401785263069063}), (8, 30, {'weight': 0.4604358340149278}), (8, 32, {'weight': 0.9601569527970788}), (8, 33, {'weight': 0.2905405465193912}), (13, 33, {'weight': 0.2556445407164615}), (19, 33, {'weight': 0.3008126988319231}), (31, 24, {'weight': 0.8781944129721222}), (31, 25, {'weight': 0.392828914742127}), (31, 28, {'weight': 0.7410701847068474}), (31, 32, {'weight': 0.39869250595380246}), (31, 33, {'weight': 0.4380052794486696}), (30, 32, {'weight': 0.4587792580500568}), (30, 33, {'weight': 0.5106934704075864}), (9, 33, {'weight': 0.9037424067215868}), (27, 23, {'weight': 0.9151325306454512}), (27, 24, {'weight': 0.6079907996445639}), (27, 33, {'weight': 0.6168782680542676}), (28, 33, {'weight': 0.9529880704286767}), (32, 14, {'weight': 0.21711370788129514}), (32, 15, {'weight': 0.21906480255644156}), (32, 18, {'weight': 0.36297161231472697}), (32, 20, {'weight': 0.8295507296873654}), (32, 22, {'weight': 0.725850047579389}), (32, 23, {'weight': 0.06395474428944792}), (32, 29, {'weight': 0.021001018687274553}), (32, 33, {'weight': 0.29227780907194645}), (33, 14, {'weight': 0.7898337840851372}), (33, 15, {'weight': 0.06574640956244104}), (33, 18, {'weight': 0.3193055980182168}), (33, 20, {'weight': 0.22814267912232755}), (33, 22, {'weight': 0.934928086748862}), (33, 23, {'weight': 0.8780586608909188}), (33, 26, {'weight': 0.834765093283264}), (33, 29, {'weight': 0.8927802653939352}), (23, 25, {'weight': 0.18106036608743914}), (23, 29, {'weight': 0.7824721548411848}), (25, 24, {'weight': 0.9362577071184671}), (29, 26, {'weight': 0.06557785001633887})]

如何只输出权重

?
1
2
3
4
5
6
7
import networkx as nx
import random
g = nx.karate_club_graph()  # 空手道俱乐部
for u,v in g.edges:
    g.add_edge(u, v, weight=random.uniform(0, 1))  # 权值为(0,1)
for (u,v,d) in g.edges(data=True):
    print(d['weight'])

输出结果

0.9175521740544361
0.09841104142600388
0.9557658899707079
0.9256010898041206
0.2519120041349847
0.48370396192288767
0.8354304958648846
0.758094795660556
0.7910256982243447
0.6281003207621544
0.9801420646231339
0.7941450155753779
0.3851720075568309
0.802202234860892
0.7923045754263267
0.5270583359776736
0.9523963539542339
0.7474601472346581
0.044707615637251674
0.5349188097983026
0.6158693844408302
0.9456154478628968
0.7547788968185274
0.5648525235741113
0.6657063624514532
0.3109915743055601
0.3969190047820317
0.8763009836310122
0.7101598558464499
0.012225959063178693
0.700579386399397
0.8304116006624506
0.426518724548162
0.07244870577629914
0.36116795615537345
0.45781457416039606
0.25726914791707645
0.29778955309109023
0.8892096639219873
0.39322230058450647
0.5085017515323529
0.9597980742524421
0.08034618164792517
0.9143712112937563
0.17242150180445381
0.8914706349104955
0.8480034205451665
0.8217034225251223
0.45552196009659873
0.3909280195122691
0.45119988941609357
0.02984583822414133
0.14404544949710196
0.45459370924953857
0.10296953351890004
0.4948127850493056
0.9238669854480596
0.9399144983422378
0.919211279645529
0.24084759450828674
0.4410486851096309
0.7699702465967465
0.27749525807367836
0.9449097003790671
0.5019309896062647
0.42774455164796255
0.43988066338230847
0.7405733579782761
0.2308870299365694
0.12306785713306911
0.7139426386075743
0.2640769424119722
0.031149630992576394
0.07700734539599274
0.37034537464573547
0.7034898163898959
0.8557141929947621
0.06539918397508715

以上就是networkx库绘制带权图给无权图加权重输出的详细内容,更多关于networkx带权图无权图输出的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/zheng____/article/details/109812933

延伸 · 阅读

精彩推荐
  • PythonPython高并发解决方案实现过程详解

    Python高并发解决方案实现过程详解

    这篇文章主要介绍了Python高并发解决方案实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    小河逆袭变大海2882020-08-01
  • Pythonpython 基于TCP协议的套接字编程详解

    python 基于TCP协议的套接字编程详解

    这篇文章主要介绍了python 基于TCP协议的套接字编程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    格格小丫头8112021-07-27
  • Pythonpython 如何调用 dubbo 接口

    python 如何调用 dubbo 接口

    这篇文章主要介绍了python 如何调用 dubbo 接口,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下...

    三只松鼠6932020-09-24
  • Pythonpython Socket网络编程实现C/S模式和P2P

    python Socket网络编程实现C/S模式和P2P

    这篇文章主要介绍了python Socket网络编程实现C/S模式和P2P,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    阿君的猫3092020-06-22
  • PythonPython 通过requests实现腾讯新闻抓取爬虫的方法

    Python 通过requests实现腾讯新闻抓取爬虫的方法

    今天小编就为大家分享一篇Python 通过requests实现腾讯新闻抓取爬虫的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    无缘浪子党8612021-06-01
  • Python基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解

    基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解

    下面小编就为大家带来一篇基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随...

    kallan5012020-12-11
  • Pythonpytest多进程或多线程执行测试实例

    pytest多进程或多线程执行测试实例

    这篇文章介绍了pytest多进程或多线程执行测试的实例,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以...

    网名余先生8232022-07-04
  • Pythonpython实现聚类算法原理

    python实现聚类算法原理

    这篇文章主要为大家详细介绍了python实现聚类算法原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    FishBear_move_on13012021-01-15