Die auszuführende Beispielverarbeitung ist das Programm, das ich bisher notiert habe. (1) Excel-Daten mit matplotlib (1) grafisch darstellen (2) [Matplotlib-Diagramm in EMF-Dateiformat konvertieren] (http://qiita.com/gitytm15/items/418ddcd8f58555d7433b) (3) Ich habe versucht, die Inkscape of Raspeye von 0,48 auf 0,92 zu ändern
Es ist ein Raspeltorte, also mag ich es, dass es mich nicht so sehr stört, selbst wenn ich es die ganze Zeit anfange.
Erstellen Sie zunächst einen freigegebenen Ordner, auf den von überall aus zugegriffen werden kann, damit das Programm ausgeführt wird, wenn Sie die Dateien xlsx und xls in den freigegebenen Ordner [DATA] legen.
[freigeben] ← freigegebener Ordner │ └ [DATA] Fügen Sie hier xlsx, xls ein, damit das Konvertierungsprogramm ausgeführt wird │ ├ [eps] Eps-Datei speichern └ [emf] EMF-Datei speichern
Es gibt viele Stellen, auf die bei der Suche Bezug genommen werden kann, aber ich habe hier auf die Freigabemethode von Samba von Raspeye verwiesen.
[hiramine.com] (http://www.hiramine.com/physicalcomputing/raspberrypi3/samba_installconfigconnect.html)
Hier wird `/ home / pi``` geteilt, aber da es ein Problem ist, wenn der Bereich unter pi vollständig sichtbar ist, habe ich beschlossen, einen Ordner`
[share] `darunter zu erstellen. Zuerst stimmte ich nicht mit den Ordnernamen
[share]
und
`path = / home / share``` überein, und die Freigabe funktionierte nicht, so dass ich mir eine Weile Sorgen machte. Die grobe Strömung ist wie folgt.
Installation
sudo apt-get update
sudo apt-get install samba
Umschreiben der Einstellungsdatei (in die letzte Zeile eingefügt)
sudo nano /etc/samba/smb.conf
smb.conf
#Zuletzt hinzugefügt
[share]
path = /home/pi/share
read only = No
guest ok = Yes
force user = pi
sudo service smbd restart
Sie können jetzt von Windows, Mac und Ubuntu darauf zugreifen.
Es ist ein konkreter Code, wie man überwacht und was es tatsächlich tut, aber es gibt bereits einen leicht verständlichen Artikel. Ich habe es als Referenz verwendet. Der, den ich benutzt habe, ist "Wachhund"
・ [Watchdog ist sehr praktisch für die Dateiüberwachung] (http://qiita.com/PyYoshi@github/items/9744a138c018734c69db)
watchdog kann mit `` `pip install watchdog``` installiert werden. Nur um sicher zu gehen.
Siehe sample1.py unten für den Code. Dies ist der Hauptteil, der überwacht und ausgeführt werden muss.
einfache Erklärung Importieren Sie das Modul nicht nur um Watchdog herum, sondern auch zur Ausführung.
import sample2
Hier tun wir dies, um den Code in sample2.py auszuführen. (Ersetzen Sie diesen Teil durch eine beliebige ausführbare Datei.)
sample2.py fasst die beiden folgenden Codes zusammen. Excel-Daten mit matplotlib (1) grafisch darstellen [Matplotlib-Diagramm in EMF-Dateiformat konvertieren] (http://qiita.com/gitytm15/items/418ddcd8f58555d7433b)
Da das Überwachungsziel für Dateiaktualisierungen hier eine Excel-Datei ist, legen Sie die Erweiterung wie folgt fest.
#Zu überwachende Dateien
observed_file_type = ('.xls','.xlsx')
Setzen Sie den freigegebenen Ordner des zuvor erstellten Raspelkuchens auf BASEDIR. Ursprünglich gibt BASEDIR den Speicherort des Dateikörpers an
#BASEDIR = os.path.abspath(os.path.dirname(__file__))
Obwohl es so ist, wird es hier auskommentiert. Dieses Mal wird die Adresse des freigegebenen Ordners von Raspeye wie folgt angegeben.
BASEDIR ='/home/pi/share/DATA'
Als nächstes folgt der Ausführungsteil, wenn ein Ereignis auftritt. Dieser Code wird für jedes Ereignis eingegeben. Ich werfe den Pfad der aktualisierten Excel-Datei.
sample2.plot(event.src_path) #Beim Erstellen einer Datei ausführen
Wenn Sie sample1.py ausführen, wechselt Raspai in den Überwachungsmodus des angegebenen Ordners. Es wird jedes Mal ausgeführt, wenn Sie die Excel-Datei in den angegebenen Ordner verschieben, bearbeiten und speichern. Diese Excel-Datei entspricht der Struktur, in der X in A1 und Y in B1 im XY-Achsendiagramm eingefügt werden.
sample1.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import os
from watchdog.events import FileSystemEventHandler
from watchdog.observers import Observer
import sample2 #← Modul, das gemäß dem Update ausgeführt werden soll(Hier sample2)
#Zu überwachende Dateien
observed_file_type = ('.xls','.xlsx')
#Aufbau
#BASEDIR = os.path.abspath(os.path.dirname(__file__))
#→ Wenn Sie den Speicherort dieser Programmdatei überwachen möchten
#Geben Sie einen freigegebenen Ordner für Raspeye an
#freigegebenen Ordner[share]Im,[DATA]Platzierte den Ordner
BASEDIR ='/home/pi/share/DATA'
#Überprüfen Sie, ob die geänderte Datei überwacht wird
def match(path):
return any([path.endswith(ft) for ft in observed_file_type])
#Ereignishandler zum Zeitpunkt der Änderung
class ChangeHandler(FileSystemEventHandler):
def on_create(self, event):
if event.is_directory:
return
if match(event.src_path):
print('Create',event.src_path)
sample2.plot(event.src_path) #Beim Erstellen einer Datei ausführen
def on_modified(self, event):
if event.is_directory:
return
if match(event.src_path):
print('Modified',event.src_path)
sample2.plot(event.src_path) #Beim Ändern der Datei ausführen
def on_deleted(self, event):
if event.is_directory:
return
if match(event.src_path):
print('delete',event.src_path)
#Tun Sie nichts, wenn die Datei gelöscht wird
if __name__ in '__main__':
event_handler = ChangeHandler()
observer = Observer()
observer.schedule(event_handler, BASEDIR, recursive=True)
print('start dir=',BASEDIR)
observer.start()
try:
while True:
time.sleep(0.1)
except KeyboardInterrupt:
observer.stop()
observer.join()
Es wird aufgerufen, wenn die Excel-Datei aktualisiert oder eine neue Datei erstellt wird.
Der Excel-Pfad wird ausgelöst. Lesen Sie diese Excel-Datei und zeichnen Sie sie grafisch auf. Zeichnen Sie danach ein Diagramm, speichern Sie es im EPS-Format und konvertieren Sie es gleichzeitig von SVG in EMF-Datei und speichern Sie es. Löschen Sie die ursprüngliche SVG-Datei.
Die erforderlichen Module sind: ・ Pandas ・ Matplotlib ・ Unterprozess
sample2.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import subprocess
import os
#Geben Sie den Speicherort der Ubuntu-Schriftartdatei an(C:\Windows\Fonts\Beliebige Schriftart)
fp = FontProperties(fname="/usr/share/fonts/truetype/fonts-japanese-gothic.ttf")
def dataload(path): #Laden Sie in Pandas DataFrame
df=pd.read_excel(path)
return df
def graph(df):
#Lesen Sie die Daten der x- und Y-Achse aus dem Datenrahmen
#Angegeben durch Spalte
x=df[[0]]
y=df[[1]]
#Graph
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_yscale('linear')
#ax1.set_yscale('log')
#ax1.set_ylim(-1.1, 1.1)
#ax1.set_xlim(0,360)
ax1.set_title("Diagrammbeispiel",fontdict = {"fontproperties": fp},fontsize=12)
ax1.set_xlabel("x-Achse",fontdict = {"fontproperties": fp},fontsize=12)
ax1.set_ylabel("y-Achse",fontdict = {"fontproperties": fp},fontsize=12)
ax1.scatter(x, y,s=1,c='r',label='sin')
ax1.legend(loc="upper right")
def graph_save(path):
SAVEDIR=os.path.dirname(path) #Dateipfad
fname, ext = os.path.splitext( os.path.basename(path) ) #Nur Dateiname
plt.savefig(SAVEDIR+'/eps/'+fname+".eps") #eps speichern
plt.savefig(SAVEDIR+fname+".svg") #Als svg für die EMK-Konvertierung speichern
call_cmd='inkscape ' + SAVEDIR+fname + '.svg -M ' + SAVEDIR+'/emf/'+fname +'.emf'
subprocess.call(call_cmd,shell=True)
os.remove(SAVEDIR+fname+".svg") #Ich brauche kein SVG, also lösche es
def plot(path):
#Wird von einem Überwachungsprogramm aufgerufen
df=dataload(path) #Laden Sie Excel als Pandas-Datenrahmen
graph(df) #Grafikzeichnung mit Matplotlib
graph_save(path) #Speichern und konvertieren Sie Diagramme
if __name__ == '__main__':
SAVEDIR='/home/pi/share/DATA/'
path='/home/pi/Desktop/sample.xlsx'
plot(path)
das ist alles
Recommended Posts