1

プロットにCairo拡張機能を備えたIgraph0.6を使用して、Python2.7でグラフをプロットします。すべて良いですが、プロットするたびに凡例を追加したいと思います。

プロットに背景画像を追加することしかできなかった場合は、適切なサイズで凡例がすでに追加された(一般的な記号の説明付きの)白い画像を作成するため、これも問題ありません。

これは私にはできませんし、グーグルで見つけることもできません。たぶん、私はグーグルの正しい側にたどり着くことができないか、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)

正しいリンクで十分だと思います。少し手伝ってください、よろしくお願いします!

4

1 に答える 1

2

秘訣は、既存のCairoサーフェスをに渡すことができplot、新しいサーフェスを作成する代わりに、そのサーフェスにグラフをプロットするだけです。したがって、基本的には、カイロサーフェス(たとえば)を作成し、標準のカイロ呼び出しを使用してそのサーフェスに凡例を描画してから、次のようImageSurfaceにサーフェスを渡す必要があります。plot

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

私の知る限り、plot()この方法で呼び出された場合、グラフ自体は表示されません。単にPlotオブジェクトを返します。オブジェクトのshow()メソッドを呼び出して表示するか、メソッドを呼び出してPNGファイルに保存することができます。Plotsave()

于 2013-03-02T15:57:06.170 に答える