2016-07-17 2 views
1

Теперь я использую python 2.7 и graphviz для рисования кластерного графика из моего набора данных. Каждый кластер представлен в этом типе -> [ср, число] , в котором «ср» обозначает среднее значение точек в этом кластере и «Num» обозначает количество точек в этом кластереКак установить размеры узлов при использовании graphviz на python?

Я хочу, чтобы создать сюжет с каждым узлом имеет различный размер, который зависит от «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) 

И причиной, почему я использую Graphviz но не NetworkX, потому что я на самом деле не хотят устанавливать позицию узлов вручную, и эти двигатели, такие как neato или circo в graphviz, действительно полезны.

Все комментарии и помощь приветствуются. T^T

ответ

3

Вы можете установить размеры узлов, как следует:

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') 

, которые производят:

Graph example

+1

WOW! Я думал, что ширина и высота для прямоугольных узлов типа lol. Спасибо, очень! – Chu