Python의 Matplotlib + Seaborn을 사용한 그래프 그리기를 비 Python 실행 환경의 Windows에서 사용
5410 단어 PyInstaller파이썬matplotlib
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]은 실행 파일명
파이썬 인수가있는 실행에 대한 자세한 내용은 여기,
matplotlib의 savefig 경로 지정은 여기을 참조했다.
※오류 처리는 할애
pyinstaller로 .exe 만들기
이 기사을 참고로 pyinstaller로 .exe 작성.
관련 dll을 포함하여 폴더를 만들었습니다.
.exe에서 인수가있는 실행
[앱.exe] [제1 인수] [제2 인수] [제3 인수]
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
할 수있었습니다.
그러나이 작업은 매번 실행되는 정책으로 인해 실행 시간이 몇 초가 걸립니다.
→실측 약 4초
File 저장을 반복하기 위해 Windows 앱 측에서이 .exe를 실행하여 출력 파일을 앱 측으로 가져 오는 용도에는 적합하지 않습니다. (늦어서 좋으면 할 수 있지만)
다음 번에는 .exe를 항상 시작하고 프로세스 간 통신으로 반환하도록 만듭니다.
Reference
이 문제에 관하여(Python의 Matplotlib + Seaborn을 사용한 그래프 그리기를 비 Python 실행 환경의 Windows에서 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/BLUETREE/items/647cea422c8d2165d2d3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 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]은 실행 파일명
파이썬 인수가있는 실행에 대한 자세한 내용은 여기,
matplotlib의 savefig 경로 지정은 여기을 참조했다.
※오류 처리는 할애
pyinstaller로 .exe 만들기
이 기사을 참고로 pyinstaller로 .exe 작성.
관련 dll을 포함하여 폴더를 만들었습니다.
.exe에서 인수가있는 실행
[앱.exe] [제1 인수] [제2 인수] [제3 인수]
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
할 수있었습니다.
그러나이 작업은 매번 실행되는 정책으로 인해 실행 시간이 몇 초가 걸립니다.
→실측 약 4초
File 저장을 반복하기 위해 Windows 앱 측에서이 .exe를 실행하여 출력 파일을 앱 측으로 가져 오는 용도에는 적합하지 않습니다. (늦어서 좋으면 할 수 있지만)
다음 번에는 .exe를 항상 시작하고 프로세스 간 통신으로 반환하도록 만듭니다.
Reference
이 문제에 관하여(Python의 Matplotlib + Seaborn을 사용한 그래프 그리기를 비 Python 실행 환경의 Windows에서 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/BLUETREE/items/647cea422c8d2165d2d3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[앱.exe] [제1 인수] [제2 인수] [제3 인수]
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
할 수있었습니다.
그러나이 작업은 매번 실행되는 정책으로 인해 실행 시간이 몇 초가 걸립니다.
→실측 약 4초
File 저장을 반복하기 위해 Windows 앱 측에서이 .exe를 실행하여 출력 파일을 앱 측으로 가져 오는 용도에는 적합하지 않습니다. (늦어서 좋으면 할 수 있지만)
다음 번에는 .exe를 항상 시작하고 프로세스 간 통신으로 반환하도록 만듭니다.
Reference
이 문제에 관하여(Python의 Matplotlib + Seaborn을 사용한 그래프 그리기를 비 Python 실행 환경의 Windows에서 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/BLUETREE/items/647cea422c8d2165d2d3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)