Python最近、とある学会に提出する原稿をまとめている際に関係図を作成することがありました。原稿に載せるのでデジタル化したかったのですが、どんな形になるか分からなかったので手書きで作成したところ、とてもカオスな感じになりました。カオスな関係図これでも全体の半分くらいのデータで、人間の手で全部反映させるのは現実的ではありません。自動化しようということで見つけたのがpythonのライブラリであるNetworkXでした。NetworkXについてNetworkXのインストール読み込むCSVデータ実装ファイルの読み込みグラフの作成グラフの描画ソースコード成果物NetworkXについてNetworkXはグラフやネットワーク理論系の計算を行うためのライブラリで、関係図などの作成が容易に出来ます。NetworkXはバージョンによってAPIの叩き方が異なる部分が多くあります。google検索で上位に出てくるページは1.X系が多く、コピペしても動かないことがありますので注意が必要です。※普通にNetworkXをインストールすると2.X系になります。ここで紹介するプログラムは2.x系を想定しています。NetworkXのインストールpipでインストールするだけです。node_list.append(f_lines[i])普通に読み込んで普通にリストに追加しているだけです。あったら削除してあげます。1ノードの大きさを出現回数に応じて変化させるためにあらかじめ数えておきます。ノードに属性を加える部分が1.x系と異なります。属性を追加できるようですが、同じように書くと2.x系ではエラーになります。画像サイズを指定します。した値のピクセル数になります。この場合だと2000×2000です。レイアウトの調整が出来ます。値を大きくすると中心から離れたところに描画します。ノードの数が多いときはこの値を大きめに設定することでノードの位置が被りにくくなります。16進数のカラーコードか色名(whiteやblackなど)で設定できます。3桁の短縮コードは設定できません。近づくほど透明になっていきます。ノード数が多いとノードの位置が重なって見ずらくなってしまうので、少し透明にしてあげると良さげです。オプションはノードと特に変わりません。フォントの設定ができます。好きなフォントを設定できます。することで太字にすることも可能です。ソースコードオプションに設定する値は少しずつ変えて、良さげな図が出来上がるまで調整するしかありません。同じ値でもプログラムを実行して図を吐きだす度に微妙に配置が変わるので、お気に入りの図が出来上がるまで頑張りましょう。相変わらずゴチャゴチャしてはいますが、手書きの関係図よりは見やすくなりました。手書きだとどうしても見落としがあったり、時間も掛かるものです。プログラムで書いたら一瞬な上に見落としもありません(プログラムにミスが無い限り)。今後も使えそうなプログラムが出来たのではないかなと思います。月別アーカイブリンクプライバシーポリシーお問い合わせはてなブログをはじめよう!aokakesさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。