2017-06-13 10 views
0

nxpdのドキュメントは、ipython内部のグラフを印刷する方法は非常にはっきりしていますが、グラフを.pngまたは.pdfとしてどのように保存しますか?以下のメソッドは、状態変化の確率と出力されたパスを含むデータフレーム(mc)を読み込み、グラフを保存します。 nxpdの描画をpyplotに渡す方法や内部の保存メソッドを使う方法は私には不明です。nxpdで生成されたグラフプロットを保存する

NXPDのドキュメントが限られている:https://github.com/chebee7i/nxpd

def DrawMarkov(mc, outputPath): 
    import matplotlib.pyplot as plt 
    from pandas import DataFrame 
    import networkx as nx 
    from nxpd import draw 
    ## Draw as an internal to ipython 
    # draw(G, show='ipynb') 
    ## OR 
    # from nxpd import nxpdParams 
    # nxpdParams['show'] = 'ipynb' 

    def Add_Nodes(G, name): 
     for node in range(0,len(mc)): 
    #   print(node); print(type(node)); print(color_map[node]) 
      G.add_node(node, style='filled', fillcolor=color_map[node],) 

    def Add_Edges(G,mc): 
     for start in range(0,len(mc[0])): 
      # print(start,'\n') 
      for finish in range(0,len(mc)): 
       # print(mc[start][finish]) 
       if mc[start][finish]!=0: 
        G.add_edge(start, finish, weight=mc[start][finish], label=str(mc[start][finish])) 

    color_map = {0: 'lightblue', 
       1:'palegreen', 
       2:'lightcoral'} 

    ## Plot DiGraph 
    G = nx.DiGraph() 
    Add_Nodes(G,mc) 
    Add_Edges(G,mc) 
    mapping={0:'State1', 1:'State2', 2:'State3'} 
    G = nx.relabel_nodes(G,mapping) 

    ## Output 
    draw(G, layout='dot') # , show='ipynb' # unclear how to pass graph to plt 
    # plt.savefig(os.path.join(outputPath, 'Graph.png')) 
+0

どうなりますか?それがnetworkxのようなものだとすれば、そうするべきです。 – Joel

+0

show = 'ipynb'引数が使用されていない場合、draw()は新しいプレビューウィンドウ(Mac上)に.pngを生成します。 plt.savefig( 'graph.png'): "AttributeError: 'str'オブジェクトに 'savefig'属性がありません。 – MyopicVisage

+0

.pngファイルのオープンを抑制し、強制的に保存する方法はありますか? – MyopicVisage

答えて

-1

あなたはドロー機能で保存形式を指定することができます。詳細はhttps://github.com/chebee7i/nxpd/blob/master/nxpd/nx_pydot.pyの実装を確認してください。

使用法:

draw(G, format ='pdf') 

をサポートするフォーマットは、次のとおりです。あなたは、単に `plt.savefig( 'Graph.png')`行う場合

'canon', 'cmap', 'cmapx', 'cmapx_np', 'dia', 'dot', 
'fig', 'gd', 'gd2', 'gif', 'hpgl', 'imap', 'imap_np', 
'ismap', 'jpe', 'jpeg', 'jpg', 'mif', 'mp', 'pcl', 'pdf', 
'pic', 'plain', 'plain-ext', 'png', 'ps', 'ps2', 'svg', 
'svgz', 'vml', 'vmlz', 'vrml', 'vtx', 'wbmp', 'xdot', 'xlib' 
+0

このリンクは質問に答えるかもしれませんが、回答の重要な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](レビュー/低品質の投稿/ 17465409) –

+0

こんにちは@MadPhysicist、私は私の答えに使用例を含めました。編集のためのwhrrgarblに感謝します。 –

関連する問題