Ich versuche, Kantenbeschriftungen für ein Diagramm hinzuzufügen. Alles funktioniert gut, das Problem ist nur, wenn sich die beiden Kanten schneiden - ich sehe nur eine der Etiketten, wenn sie sich überlappen.Wie setze ich NetworkX Edge Labels Offset? (um eine Überlappung der Etiketten zu vermeiden)
Wie Sie das hphob-alpha-Label angezeigt wird sehen können, aber die Polarität-Beta-Label ist nicht gezeigt (meine Vermutung ist, dass es direkt unter der oben genannten ist).
Ich konnte keine Dokumentation finden, wie die Etiketten neu positioniert werden können. Wie kann man einen Offset einstellen, um die Etiketten zu bewegen?
-Code verwendet, um die Grafik zu erzeugen:
try:
import matplotlib.pyplot as plt
except:
raise
import networkx as nx
G=nx.Graph()
a="hphob"
b="polarity"
c="alpha"
d="beta"
G.add_edge(a,b,weight=0.5)
G.add_edge(b,c,weight=0.5)
G.add_edge(c,d,weight=0.5)
G.add_edge(a,d,weight=0.5)
G.add_edge(a,c,weight=0.5)
G.add_edge(b,d,weight=0.5)
pos=nx.spring_layout(G) # positions for all nodes
# nodes
nx.draw_networkx_nodes(G,pos,node_size=7000, node_color="white")
# edges
nx.draw_networkx_edges(G,pos,
width=6,alpha=0.5,edge_color='black')
# labels
nx.draw_networkx_labels(G,pos,font_size=20,font_family='sans-serif')
nx.draw_networkx_edge_labels(G,pos,
{
(a,b):"x", (b,c):"y", (c,d):"w", (a,d):"z", (a,c):"v", (b,d):"r"
}
)
plt.axis('off')
plt.savefig("weighted_graph.png") # save as png
plt.show() # display
ich gerade gesehen, dass es in der [Dokumentation ist für Version 1.6] (http://networkx.lanl.gov/reference/generated/networkx.drawing.nx_pylab.draw_networkx_edge_labels.html). – Maehler
Der andere Vorteil besteht darin, dass eine Kante mehrere Labels haben kann und an diesen unterschiedlichen Offsets positioniert werden kann. – Vikram