2013-03-01 48 views
1

我使用Igraph 0.6繪製了python 2.7的圖形,並繪製了Cairo擴展圖。所有的好,但我想每次添加一個圖例我繪圖。將圖例或背景圖像添加到Igraph 0.6(用於python)plot

如果我只能添加背景圖像的情節,這將是也蠻好的,因爲我做一個白色的圖像具有合適的尺寸,並與已經添加有(與一般的符號解釋)的傳說。

這些我都無法做到,我也無法通過googleing找到它。也許我只是無法站在Google的右側,或者在Igraph文檔中找到正確的關鍵字。

gp = Graph()。這是全球性的。具有頂點和邊序列等,有包含關於頂點和邊進一步信息(例:self.gp_cities,self.road_kind)某些列表下面是我的情節:

def showitshort(self,event): 
    global gp 
    layout = gp.layout("kk") 
    color_dict = {"1": "red", "20": "blue"} 
    visual_style = {} 
    visual_style["vertex_size"] = 15 
    visual_style["vertex_color"] = ["yellow"] 
    visual_style["edge_color"] = [color_dict[elektro] for elektro in self.road_kind] 
    visual_style["vertex_label"] = self.gp_cities 
    visual_style["layout"] = layout 
    visual_style["bbox"] = (4000, 2500) 
    visual_style["margin"] = 100 
    visual_style["vertex_label_dist"] = 5 
    visual_style["vertex_shape"] = "triangle-up" 
    plot(gp,**visual_style) 

正確鏈接,我認爲足夠。請幫助一下,並提前謝謝!

回答

2

的技巧是,你可以通過現有的開羅表面到plot,它會簡單地繪製該表面上的圖形,而不是創建一個新的。所以,基本上,你需要構建一個開羅面(比方說,一個ImageSurface),繪製使用標準開羅調用到該表面,再通過表面的傳說plot如下:

plot(gp, target=my_surface, **visual_style) 

據我所知,當以這種方式調用時,plot()不會顯示圖形本身;它只會返回一個Plot對象。您可以調用Plot對象的show()方法來顯示它,或者調用save()方法將其保存到PNG文件中。

+0

好吧,我試試看。再次感謝您Tamás! :-) – Laci 2013-03-03 13:56:07

+0

它確實工作!感謝Igraph !!! – Laci 2013-03-04 08:13:35

+0

它不工作,不知何故,我傳遞給情節的表面獨立於我寫傳奇的表面。 – arivero 2013-04-17 18:18:48