2016-09-16 50 views
1

我想在圖形工具的gt.graph_draw()上使用edge_gradient屬性,以便更好地查看對於諸如箭頭等標記過於擁擠的圖的連接方向。圖形工具的edge_gradient屬性

從文檔中的描述看來,這是屬性應該做的事情。但是,目前,它只能讓我將邊緣設置爲純色。

我使用的財產,像這樣:

egradient = g.new_edge_property('vector<double>') 
g.edge_properties['egradient'] = egradient 
e = g.add_edge(v1, v2) 
egradient[e] = (0.9, 0.329,0.282,0.478,1) 
... 
gt.graph_draw(g, ... edge_gradient=g.edge_properties["egradient"]) 

,如果我在(0.9, 0.329,0.282,0.478,1)修改的第一個值外觀保持不變 - 如果我試圖通過它的元組的列表,我得到這個從圖形工具內部:

TypeError: float() argument must be a string or a number

如何能夠做到什麼,我在圖形工具找?如果我不能,那麼邊緣漸變5元組中的第一個值還有什麼其他優點?

回答

0

edge_gradient實際上需要一個整數列表,而不是元組列表。起初我犯了同樣的錯誤。

例子:如果你想從白到黑去,你的`edge_gradient參數應該是這樣的:

#    o r g b a o r g b a 
edge_gradient=[0, 1, 1, 1, 1, 1, 0, 0, 0, 1] 

這就是該文檔的意思,「5個元素的每個組被解釋爲[o, r, g, b, a] 。其中o是在範圍[0, 1]偏移和剩餘值指定顏色

它變得有點困難閱讀,所以我分開我的止損點,這樣格式化:

#    offset r g b a 
edge_gradient=[0,  1, 1, 1, 1, \ 
       0.5, 0, 0, 0, 1, \ 
       1,  1, 0, 0, 1] 

從白色變爲黑色變爲紅色。至少在理論上。我無法讓edge_gradient使用兩個以上的漸變停止點。我總是最終得到一些顏色類似於我傳遞給edge_gradient屬性的列表,其餘的行爲都是奇怪的,就像中間有最後一個顏色一樣。