DSM-Design Structure MatrixをJulia言語のheatmap(by Seaborn)で描画&ネットワーク可視化(by GraphPlot)
前回はDSM(Design Structure Matrix)をMatlabのheatmapで描画し、さらにネットワーク可視化を行いましたが、今回はJulia言語でそれをやってみます。 前回の記事は以下
heatmapでDSMの可視化
今回、プロットにはSeaborn.jl
を使用します。Pythonでお馴染みの描画ライブラリをJuliaでwrappingしたものです。使用には同じくseabornがインストールされたpython環境が必要です。
Seabornの使用にあたっては以下の記事が参考になりました。
描画するためのコードは以下のようになります。残念ながらこちらの環境では図のプレビューができなかったので、pngで保存しました。
using Seaborn B=[ 0 1 0 0 0 1 0;0 0 0 1 0 0 0;1 0 0 0 0 0 1;0 0 0 0 1 0 0; 0 1 0 0 0 1 0;0 0 1 0 0 0 0;1 0 0 0 1 0 0] xvalues = ["ElementA","ElementB","ElementC","ElementD","ElementE","ElementF","ElementG"]; yvalues = ["ElementA","ElementB","ElementC","ElementD","ElementE","ElementF","ElementG"]; heatmap(B,annot=true, cbar=false,square=true,cmap="Blues",linewidths="0.5",linecolor="grey",xticklabels = xvalues, yticklabels = yvalues ) plt.savefig("DSMtest.png",bbox_inches="tight")
以下のようにheatmapが描画されます。
ネットワーク可視化
有向グラフの作成にLightGraphs
、グラフのプロットにGraphPlot
パッケージをそれぞれ使用します。
http://juliagraphs.github.io/GraphPlot.jl/
ネットワーク可視化するコードは以下のようになります。
using LightGraphs using GraphPlot B=[ 0 1 0 0 0 1 0;0 0 0 1 0 0 0;1 0 0 0 0 0 1;0 0 0 0 1 0 0; 0 1 0 0 0 1 0;0 0 1 0 0 0 0;1 0 0 0 1 0 0] values = ["ElementA","ElementB","ElementC","ElementD","ElementE","ElementF","ElementG"]; G = DiGraph(B') gplot(G,nodelabel = values,nodelabelc= "black")
実行することで以下のプロットが得られます。
パッケージの情報を集めるのにかなり労力はかかりましたが、DSMに関しては一応JuliaでもMatlabと同等程度のことはできそうですね。
今回はここまでにします。