2012-07-03 18 views
6

(Örneğin) draw_networkx_edges (örneğin) networkx kenarları çizilirken çizgi özellikleri üzerinde ince ayarlı denetimin mümkün olup olmadığını bilen var mı? (Matplotlib) Line2D özellikleri olan solid_capstyle ve solid_joinstyle satırlarını kontrol etmek istiyorum. I capstyle kontrol gizlemeye istiyorum kenarları arasında 'boşluklar' vardır Yukarıdaki örnekte networkx draw_networkx_edges capstyle

>>> import networkx as nx 
>>> import matplotlib.pyplot as plt 
>>> G = nx.dodecahedral_graph() 
>>> edges = nx.draw_networkx_edges(G, pos=nx.spring_layout(G), width=7) 
>>> plt.show() 

. Boşlukları doldurmak için düğümleri doğru boyutta eklemeyi düşündüm, ama son olayımdaki kenarlar renklidir, bu yüzden düğümler eklemek onu kesmez. Dokümantasyondan anlayamıyorum veya edges.properties()'a baktığımda ne yapmak istediğimi nasıl yaparım ... herhangi bir öneri? Eğer matplotlib çizgi koleksiyonları capstyle ayarlayamıyor gibi

Carson

cevap

7

görünüyor.

Ama sen capstyle kontrol etmenizi sağlar Line2D nesneleri kullanarak kenarlarının kendi koleksiyonunu yapabilir: o @Aric için

import networkx as nx 
import matplotlib.pyplot as plt 
from matplotlib.lines import Line2D 
G = nx.dodecahedral_graph() 
pos = nx.spring_layout(G) 
ax = plt.gca() 
for u,v in G.edges(): 
    x = [pos[u][0],pos[v][0]] 
    y = [pos[u][1],pos[v][1]] 
    l = Line2D(x,y,linewidth=8,solid_capstyle='round') 
    ax.add_line(l) 
ax.autoscale() 
plt.show() 
+0

teşekkürler. Mükemmel çalışıyor! –

İlgili konular