2016-07-17 7 views
1

Ich benutze jetzt Python 2.7 und GraphViz, um ein Cluster-ähnliches Diagramm aus meinem Datensatz zu zeichnen. Jeder Cluster wird in dieser Art dargestellt -> [avg, num] in denen "avg" für den Durchschnittswert steht von Punkten in diesem Cluster und "num" steht für die Anzahl von Punkten in diesem ClusterWie kann ich die Größe von Knoten festlegen, wenn ich graphviz auf Python verwende?

ich möchte ein Grundstück mit jedem Knoten zu schaffen, hat unterschiedliche Größe, die auf der „num“ Variable abhängt, wie, was wir mit 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) 

Und der Grund, warum ich graphviz verwenden kann, nicht aber NetworkX ist, weil ich Ich möchte die Position der Knoten nicht wirklich manuell festlegen, und diese Engines wie neato oder circo in graphviz sind wirklich hilfreich.

Alle Kommentare und Hilfe werden geschätzt. T^T

Antwort

3

Sie können die Größen der Knoten festgelegt wie folgt:

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

Welche produzieren:

Graph example

+1

WOW! Ich dachte, Breite und Höhe sind für rechteckige Knoten. Lol Vielen Dank !!! – Chu