在python上使用graphviz时如何设置节点的大小?

Chu*_*Chu 4 python plot graphviz

我现在使用 python 2.7 和 graphviz 从我的数据集中绘制一个类似集群的图。每个簇以这种类型表示-->[avg, num] 其中“avg”代表该簇中点的平均值,“num”代表该簇中的点数

我想创建一个每个节点都有不同大小的图,这取决于“num”变量,就像我们可以用 networkx 做的一样

node_sizes = []
for n in nodes:
    node_sizes.append( 100 * n )
g = nx.Graph()
g.add_nodes_from(nodes)
nx.draw_random(g, node_size = node_sizes)
Run Code Online (Sandbox Code Playgroud)

我使用graphviz而不使用networkx的原因是因为我真的不想手动设置节点的位置,graphviz中的neato或circo等引擎真的很有帮助。

感谢所有评论和帮助。T^T

Oha*_*tan 6

您可以按如下方式设置节点的大小:

import graphviz as gv
g = gv.Graph(format='png')
for i in range(5):
    g.node(str(i), **{'width':str(i), 'height':str(i)})
g.render('example')
Run Code Online (Sandbox Code Playgroud)

其中产生:

图例