我有以下包含 node -邻居-权重对的字典:

graph = {
    "A": {"B": 3, "C": 3},
    "B": {"A": 3, "D": 3.5, "E": 2.8},
    "C": {"A": 3, "E": 2.8, "F": 3.5},
    "D": {"B": 3.5, "E": 3.1, "G": 10},
    "E": {"B": 2.8, "C": 2.8, "D": 3.1, "G": 7},
    "F": {"G": 2.5, "C": 3.5},
    "G": {"F": 2.5, "E": 7, "D": 10},
}

该图表的视觉表示是这样的:

enter image description here

如何从该字典转到networkx图形对象:

import networkx as nx

G = nx.Graph()

# YOUR SUGGESTION HERE #

推荐答案

您需要将字典作为边添加到图表中

import networkx as nx
from matplotlib import pyplot as plt

graph = {
    "A": {"B": 3, "C": 3},
    "B": {"A": 3, "D": 3.5, "E": 2.8},
    "C": {"A": 3, "E": 2.8, "F": 3.5},
    "D": {"B": 3.5, "E": 3.1, "G": 10},
    "E": {"B": 2.8, "C": 2.8, "D": 3.1, "G": 7},
    "F": {"G": 2.5, "C": 3.5},
    "G": {"F": 2.5, "E": 7, "D": 10},
}

G = nx.Graph()
for node, neighbors in graph.items():
    for neighbor, weight in neighbors.items():
        G.add_edge(node, neighbor, weight=weight)

pos = nx.spring_layout(G)
nx.draw(G, pos)
labels = nx.get_edge_attributes(G, 'weight')
nx.draw_networkx_edge_labels(G, pos, edge_labels=labels)
nx.draw_networkx_labels(G, pos)
plt.show()

enter image description here

Python相关问答推荐

调查TensorFlow和PyTorch性能的差异

只需使用Python在图像中保留 colored颜色 范围区域

当测试字符串100%包含查询字符串时,为什么t fuzzywuzzy s Process.extractBests不给出100%分数?

Polars:使用列值引用when / then表达中的其他列

Pythind 11无法弄清楚如何访问tuple元素

当使用keras.utils.Image_dataset_from_directory仅加载测试数据集时,结果不同

根据另一列中的nan重置值后重新加权Pandas列

Python上的Instagram API:缺少client_id参数"

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

删除所有列值,但判断是否存在任何二元组

在线条上绘制表面

使用setuptools pyproject.toml和自定义目录树构建PyPi包

基于索引值的Pandas DataFrame条件填充

在np数组上实现无重叠的二维滑动窗口

把一个pandas文件夹从juyter笔记本放到堆栈溢出问题中的最快方法?

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

不能使用Gekko方程'

什么是合并两个embrame的最佳方法,其中一个有日期范围,另一个有日期没有任何共享列?

Python Tkinter为特定样式调整所有ttkbootstrap或ttk Button填充的大小,适用于所有主题

pandas:对多级列框架的列进行排序/重新排序