Aufgrund verschiedener Umstände gab es einen Fall, in dem die Grafikzeichnungsfunktion von Python unter Windows verwendet wurde, einer Nicht-Python-Ausführungsumgebung, die als Memorandum bezeichnet wird. Es mag in Nuget sein, aber ich konnte es nicht herausfinden ...
OS: Windows 10 64bit Python:3.6.10 Pyinstaller:3.5
Da ich diesmal ein Heatmap-Diagramm möchte, habe ich ein Skript "heatMap.py" erstellt, das eine Heatmap zeichnet und als .png speichert. Schließlich wird .exe unter Windows ausgeführt, um die Verwendung zu vereinfachen.
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")
Erstes Argument args [1]: Pfad der Datenquelle (CSV-Datei) + Dateispezifikation Zweites Argument args [2]: Geben Sie den Pfad zum Speichern des Diagramms an Drittes Argument args [3]: Graphname. Speichern Sie das angegebene Format
Siehe hier für die Python-Ausführung mit Argumenten. Informationen zur Sicherungspfadspezifikation von matplotlib finden Sie unter hier.
Erstellen Sie eine EXE-Datei mit pyinstaller unter Bezugnahme auf diesen Artikel.
Ein Ordner mit zugehörigen DLLs wurde erstellt.
[App.exe] [1. Argument] [2. Argument] [3. Argument]
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
Es ist fertig.
Die Ausführung dauert jedoch einige Sekunden, da es sich um eine Richtlinie handelt, die jedes Mal von Anfang an ausgeführt wird. → Tatsächliche Messung ca. 4 Sekunden Da das Speichern von Dateien wiederholt wird, ist es nicht geeignet, diese EXE-Datei auf der Windows-Anwendungsseite auszuführen und die Ausgabedatei auf die Anwendungsseite zu importieren. (Ich kann es tun, wenn es spät ist) Machen Sie das nächste Mal .exe immer aktiv und geben Sie es durch prozessübergreifende Kommunikation zurück