2016-04-19 13 views
2

Meine UmweltPosition Etiketten IGRAPH mit

Ich bin mit iGraph version 0.7.1 und python 2.7.1 auf windows 2010 Plattform.

Was das Problem
ist zwar mit iGraph Arbeits Bi-Directional Graph zu erzeugen, kann ich vertex labelvertex_label_dist Attribut steuern.

Allerdings habe ich kein Attribut zur Kontrolle edge label Entfernung gefunden. Ich habe versucht, edge_label_dist zu verwenden, die ich in keiner Dokumentation fand. Der Code ist nicht durch irgendeinen Fehler gegangen, aber er passt auch nicht edge_labels von edge_line an.

Die value von edges wird durcheinander gebracht, wie im folgenden Diagramm zu sehen ist. So werden anstelle von Kantenwerten, die als 4, 12, 10, 6, 2, 8 angezeigt werden, sie sehr nahe beieinander gezeigt, was eine Illusion von 108 , 42, 612 ergibt.

Ist edge_label_dist eine gültige attribute zur Steuerung edge_label oder gibt es eine andere Methode/Attribut? Was fehlt mir hier?

Hier ist mein Code

from igraph import * 
#from cairo import * 

gd = Graph(directed = True) # initialize graph 
gd.add_vertices(3) #Add 3 vertices 
gd.add_edges([(0,1),(1,2),(0, 2),(2,1),(1,0),(2,0)]) # Add edges 
gd.vs["names"] = ["A", "B", "C"] #Label Vertices 
gd.es["weights"] = [4, 12, 10, 6, 2, 8] #Label Edges 

#Layout and plot graph 
layout = gd.layout("kk")  
gd.vs["label"] = gd.vs["names"] 
gd.es["label"] = gd.es["weights"] 
plot(gd, layout = layout, vertex_color = "green", 
    bbox = (400, 400), edge_label_dist = 3,margin = 60) 

Bidirektionale Graph Plot

Bi Directional Graph

Antwort

2

Leider ist die part of the code, die eine Position für die Beschriftung der Kante der nicht nehmen schlägt Krümmung der Kante berücksichtigt - es wird davon ausgegangen, dass die Kante eine gerade Linie ist. Sie können entweder die obige Funktion patchen oder versuchen, Leerzeichen an die Kantenbeschriftungen anzuhängen und voranzustellen.

(Wenn Sie einen Patch finden, der Kantenkrümmung berücksichtigt, bitte send us a pull request).