1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PythonのMatplotlib+Seabornを使ったグラフ描画を非Python実行環境のWindowsで使う

Last updated at Posted at 2020-01-27

諸事情により,Pythonのグラフ描画機能を非Python実行環境のWindowsで使うケースが出たため,備忘録として記載.
nugetとかにあるかもしれないけど,調べきれなかった...

#環境
OS: Windows 10 64bit
Python:3.6.10
Pyinstaller:3.5

#heatmap描画を.pyで作成
今回はheatmapグラフが欲しいため,heatmapを描画して.png保存するスクリプト"heatMap.py"を作成.
最終的にはWindowsから.exe実行をするので,使いやすいように,

  1. .csvの読み込み(パス指定)
  2. .pngの保存(パス指定)
    を引数付きで実行できるようにした.
    heatmap描画にはseabornを用いた.
    動機はいろいろなheatmapが作りやすそうで,拡張性を感じたため.

###サンプル

import sys
import os
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

def Heatmap(data):

 ax = sns.heatmap(data,annot=True)
 return ax

if __name__ == '__main__':

 args = sys.argv

 load_path = args[1]
 save_path = args[2]
 save_name = args[3]

 print(load_path,save_path,save_name)

 data = np.loadtxt(load_path,delimiter=",")
 hoge = Heatmap(data)
 hoge.plot()

 plt.savefig(os.path.join(save_path,save_name),facecolor="blue")   

第一引数args[1]:データソース(csvファイル)のパス+ファイル指定
第二引数args[2]:グラフ保存先のパス指定
第三引数args[3]:グラフ名.保存形式 指定
※args[0]は実行ファイル名

pythonの引数付き実行についてはここを参照,
matplotlibのsavefigパス指定はここを参照した.
※エラー処理は割愛

#pyinstallerで.exe作成
この記事を参考に,pyinstallerで.exe作成.

heatMap.JPG

関連dll含めてフォルダができた.

#.exeで引数付き実行
[アプリ.exe] [第一引数] [第二引数] [第三引数]

C:\Users\user.name>heatMap.exe C:\Users\user.name\Documents\Python\Graph\DataSrc\matrix.csv C:\Users\user.name\Documents\Python\Graph\GraphDst heatMapTest.png

できました.
heatMapresult.JPG

ただし,この作りは,毎回イチから実行する方針のため,実行時間が数秒かかる.
 →実測 約4秒
File保存を繰り返すため,Windowsアプリ側でこの.exeを実行して,出力ファイルをアプリ側に取り込む用途には向いていない.(遅くていいならできるけど)
次回は,.exeを常時立ち上げておいて,プロセス間通信で返すように作る

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?