[英]Standard ASCII File Format For Plotting from Matplotlib
我正在做一個大型的硬件測試項目,遇到的一件事是我想在執行測試的系統上繪制來自Python腳本的數據,但它們不夠堅固,無法進行測試。運行類似matplotlib的東西。 我開始定義一種格式,將數據傳遞回服務器,該服務器記錄來自測試系統的所有數據。 但是,如果有的話,我寧願使用現成的東西,以標准化的方式將圖寫入ASCII文件,然后再將其讀回其他位置並進行打印。
我偏愛在matplotlib中進行繪圖,但是我可以使用一些靈活性。 我定義自定義格式沒有任何問題,如果matplotlib(或任何其他功能齊全的工具)可以通過某種文本格式即時構建繪圖,我想使用某種標准格式。 在此先感謝您的幫助。
編輯:更具體地說,傳輸數據非常簡單; 我喜歡為此使用JSON。 我正在尋找的是建立一個不僅保存數據而且還繪制數據的文件,(即腳本/應用程序加載它並從中構建圖,該文件指定title / xlabel / ylabel ,也許它需要一個圖例等。)通過CSV或JSON寫入數據並不難; 它正在尋找一種可能以標准化方式將繪圖指令發送到主機的方法。
好的,您可以將python代碼寫入文件,然后將其發送到服務器以執行,但這可能會帶來安全風險。
為了減輕某些安全風險(請注意XML漏洞 ),可以使用xmlrpclib限制可以從源計算機調用的要在服務器上運行的功能集:
例如,您可能在服務器上運行:
from SimpleXMLRPCServer import SimpleXMLRPCServer
import matplotlib.pyplot as plt
def plot(filename, x, y):
plt.plot(x, y)
plt.savefig(filename)
return True
server = SimpleXMLRPCServer(("localhost", 8000))
server.register_function(plot, 'plot')
server.serve_forever()
並在源計算機上:
import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
x = range(100)
y = [i**2 for i in x]
proxy.plot('/tmp/test.png', x, y)
您可以向plot
功能添加更多參數以處理標題,圖例等。
在源計算機上運行以上代碼將在服務器上生成文件/tmp/test.png
。
您可能會考慮使用Matlab的文本格式來傳輸數據。 Scipy有一組您可以使用的Matlab IO例程 。 您還可以通過以JSON格式轉儲數據或使用pickle的普通Python來完成此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.