我正在创建一个以节点为图像的图表,
我想创建一个圆形布局,节点zero
位于中心。Egdelist是[(0,1),(0,2),(0,3),(0,4),(0,5)]
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import networkx as nx
img=mpimg.imread('stinkbug.png')
G=nx.complete_graph(6)
G.node[0]['image']=img
G.node[1]['image']=img
G.node[2]['image']=img
G.node[3]['image']=img
G.node[4]['image']=img
G.node[5]['image']=img
print(G.nodes())
G.add_edge(0,1)
G.add_edge(0,2)
G.add_edge(0,3)
G.add_edge(0,4)
G.add_edge(0,5)
print(G.edges())
nx.draw_circular(G)
但是,在输出中,我发现额外的边缘(快照附加)。有没有办法删除这些额外的边缘?我只想要这些连接Egdelist是[(0,1),(0,2),(0,3),(0,4),(0,5)]。此外,原始图像不显示在节点中。
有什么建议吗?
1条答案
按热度按时间1cklez4t1#
所以这里有两个问题。第一个是为什么你的图有比你想要的更多的边。这是因为你使用
nx.complete_graph(6)
来初始化你的图-它创建了一个6个节点的完整图。你应该初始化一个空图,用图像元数据添加节点,然后添加边。为了将节点绘制为您的图像,我从本文中找到并稍微修改了代码。它有一些您可以自定义的东西,例如图像大小。结果是:
希望这对你有帮助!