首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pyvis中的动态节点大小

pyvis中的动态节点大小
EN

Stack Overflow用户
提问于 2021-12-21 16:38:28
回答 1查看 2.3K关注 0票数 0

我希望根据连接的数量,使节点大小不同。但是,这个功能似乎不存在于pyvis中?也许我遗漏了什么,或者它可能没有得到完全的支持。

下面是我的示例代码:

代码语言:javascript
运行
复制
import networkx as nx
import matplotlib.pyplot as plt
from pyvis.physics import Physics
from pyvis.network import Network

G = nx.Graph()
G.add_edges_from([(1,2), (2,3), (2,4), (3,4)])

d = dict(G.degree)

print(d.keys())
print([v * 100 for v in d.values()])

nx.draw(G, nodelist=d.keys(), node_size=[v * 100 for v in d.values()])
plt.show()

G2 = Network(height="1500px", width="75%",bgcolor="#222222",font_color="white",directed=True)
G2.from_nx(G)
G2.show("network_map.html")
EN

回答 1

Stack Overflow用户

发布于 2021-12-21 18:57:28

您可以通过使用networkx中的set_node_attributes函数在几行中做到这一点。它允许您添加/修改节点属性(请参阅更多信息这里)。请参阅下面使用它更改节点大小的位置:

代码语言:javascript
运行
复制
import networkx as nx
import matplotlib.pyplot as plt
from pyvis.physics import Physics
from pyvis.network import Network

G = nx.Graph()

G.add_edges_from([(1,2), (2,3), (2,4), (3,4)])

scale=10 # Scaling the size of the nodes by 10*degree
d = dict(G.degree)

#Updating dict
d.update((x, scale*y) for x, y in d.items())

#Setting up size attribute
nx.set_node_attributes(G,d,'size')

G2 = Network(height="1500px", width="75%",bgcolor="#222222",font_color="white",directed=True)
G2.from_nx(G)
G2.show("network_map.html")

输出结果是:

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

https://stackoverflow.com/questions/70438752

复制
相关文章

相似问题

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