发布
社区首页 >问答首页 >不显示添加到networkx图的一个节点的图像

不显示添加到networkx图的一个节点的图像
EN

Stack Overflow用户
提问于 2019-09-19 19:58:34
回答 1查看 207关注 0票数 1

我尝试将一个jpg图像添加到图形的一个特定节点。没有错误,但图像不会显示在节点中。我尝试广告图像的节点是"KCT BS“。

代码语言:javascript
代码运行次数:0
复制
img=mpimg.imread('kctbs.jpg')
G=nx.Graph()
G.add_node(('KCT BS'),attr_dict={'image':'img'}) #added the image to the node named #KCTBS
G.add_edges_from([("KCT BS","Placements"),("KCT BS","Courses"),("KCT BS","Faculty"),("KCT BS","Students"),("Faculty","Core:21")],length=100)
pos = nx.spring_layout(G, scale=10)
nx.draw(G,with_labels=True,pos=pos,node_size=500, node_color='r')
# G.node.items(0)
G.nodes['KCT BS']['image']=img
EN

回答 1

Stack Overflow用户

发布于 2019-09-19 22:13:17

您不能将图像绘制为networkx中的节点。但是您可以在节点的位置by matplotlib上绘制一幅图像

代码语言:javascript
代码运行次数:0
复制
import networkx as nx
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

img = mpimg.imread('hex.png')
G = nx.Graph()
G.add_node('KCT BS')
G.add_node('WAKA')
pos = nx.spring_layout(G, scale=10)
nx.draw(
    G,
    with_labels=True,
    pos=pos,
    node_size=500,
    node_color='r'
)

ax = plt.gca()
fig = plt.gcf()
trans = ax.transData.transform
trans2 = fig.transFigure.inverted().transform
imsize = 0.1

(x,y) = pos['KCT BS']
xx,yy = trans((x, y))
xa,ya = trans2((xx, yy))
a = plt.axes([xa-imsize/2.0, ya-imsize/2.0, imsize, imsize])
a.imshow(img)
a.set_aspect('equal')
a.axis('off')
plt.show()

它将绘制一个普通的networkx图(以圆为节点),然后在现有的图上绘制您的图片(请注意,如果您有像我这样的透明图片,您将在它下面看到原始的networkx节点)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58010530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档