从Matplotlib打印的标准ASCII文件格式

2024-04-27 05:20:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在进行一个大型硬件测试项目,我遇到的一个问题是,我想在进行测试的系统上绘制Python脚本中的数据,但是它们不够坚固,无法运行matplotlib之类的东西。我开始做的是定义一种格式,将数据传回服务器,记录来自测试系统的所有数据;然而,我更喜欢使用现成的东西(如果存在的话)以标准化的方式将绘图写入ASCII文件,并在其他地方读回它们并进行绘图。在

我倾向于在matplotlib中打印,但是对于我可以使用的东西我有一些灵活性。定义自定义格式没有任何问题,如果matplotlib(或任何其他功能齐全的工具)能够从某种文本格式动态构建绘图,那么我只想使用标准格式。提前谢谢你的帮助。在

编辑:更具体地说,传输数据是非常直接的;我喜欢使用JSON。我所要寻找的,是建立一个文件,不仅保存数据,而且如何绘制数据(即脚本/应用程序加载它并从中生成绘图,文件指定title/xlabel/ylabel,可能需要一个图例等)。通过CSV或JSON写入数据并不难;它正在寻找一种发送绘图指令的方法以一种标准化的方式。在


Tags: 文件数据服务器脚本json绘图硬件定义
2条回答

您可以考虑使用Matlab的文本格式来传输数据。Scipy有一组Matlab IO routines可以使用。您也可以通过在JSON format中转储数据或使用pickle来使用纯Python来完成。在

好吧,您可以将python代码写入一个文件,然后将其发送到服务器以执行,但这可能会带来安全风险。在

要减轻一些安全风险(注意XML vulnerabilities),可以使用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()

在源计算机上:

^{pr2}$

您可以向plot函数添加更多参数来处理标题、图例等

在源计算机上运行上述代码将在服务器上生成文件/tmp/test.png。在

相关问题 更多 >