python画拓扑图权值是线条粗细_python—networkx:根据图的权重画图

本示例展示了如何用Python的networkx库创建一个加权网络图。通过设置不同权重,将边区分为粗实线(权重大于0.5)和细虚线(权重小于等于0.5)。节点位置使用spring_layout布局,并保存为weighted_graph.png。
摘要由CSDN通过智能技术生成

首先输入边和边的权重,随后画出节点位置,根据权重大小划分实边和虚边

#coding:utf-8

#!/usr/bin/env python

"""

An example using Graph as a weighted network.

"""

__author__ = """Aric Hagberg ([email protected])"""

try:

import matplotlib.pyplot as plt

except:

raise

import networkx as nx

G=nx.Graph()

#添加带权边

G.add_edge('a','b',weight=0.6)

G.add_edge('a','c',weight=0.2)

G.add_edge('c','d',weight=0.1)

G.add_edge('c','e',weight=0.7)

G.add_edge('c','f',weight=0.9)

G.add_edge('a','d',weight=0.3)

#按权重划分为重权值得边和轻权值的边

elarge=[(u,v) for (u,

你可以使用PythonNetworkX库来实现根据权重拓扑图的功能。下面是一个简单的示例代码: ```python import networkx as nx import matplotlib.pyplot as plt # 创建 G = nx.Graph() # 添加节点 G.add_nodes_from(['A', 'B', 'C', 'D']) # 添加边和权重 G.add_edge('A', 'B', weight=2) G.add_edge('A', 'C', weight=3) G.add_edge('B', 'C', weight=1) G.add_edge('B', 'D', weight=4) G.add_edge('C', 'D', weight=5) # 获取边的权重 edge_weights = nx.get_edge_attributes(G, 'weight') # 设置边的粗细 edge_widths = [0.1 * G[u][v]['weight'] for u, v in G.edges()] # 绘制形 pos = nx.circular_layout(G) nx.draw_networkx_nodes(G, pos, node_color='lightblue', node_size=500) nx.draw_networkx_edges(G, pos, width=edge_widths, edge_color='gray') nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_weights, font_color='red') nx.draw_networkx_labels(G, pos, font_size=16, font_family='sans-serif') # 显示形 plt.axis('off') plt.show() ``` 在上面的代码,我们首先创建了一个包含4个节点的,并添加了5条带权重的边。然后,我们使用`nx.get_edge_attributes`函数获取每条边的权重,并将其存储在`edge_weights`字典。接着,我们计算每条边的粗细,将其存储在`edge_widths`列表。最后,我们使用`nx.draw_networkx_nodes`和`nx.draw_networkx_edges`函数绘制形,并使用`nx.draw_networkx_edge_labels`和`nx.draw_networkx_labels`函数添加标签。 运行上面的代码,你会得到一个带权重拓扑图,其边的粗细代表了它们的权重大小。你可以根据需要修改节点的颜色、边的颜色和样式等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值