跳转到主要内容

xmgrace的Python绑定

项目描述

关于Pygrace

pygrace被设计用来从Python中构建和使用xmgrace项目。pygrace提供了一系列类,作为xmgrace项目元素的编辑模板。pygrace的继承结构反映了xmgrace的结构。

pygrace Project 对象用于构建和保存xmgrace项目文件 (.agr)。项目文件捕获了xmgrace会话的状态,包括图形、设置和当前变量。

pygrace project

有关所有 pygrace 模板对象的详细属性图,可在以下链接找到:https://github.com/uqfoundation/pygrace/blob/master/docs/diagrams/diagram.pdf,而关于每个 pygrace 模板类的方法和属性的便捷速查表,可在以下链接找到:https://github.com/uqfoundation/pygrace/blob/master/docs/diagrams/cheatsheet.pdf。此速查表可以通过使用 write_cheatsheet 方法动态生成,该方法由 Project 类提供。

pygrace 正处于积极开发中,因此任何用户反馈、错误报告、评论或建议都将非常受欢迎。问题列表位于 https://github.com/uqfoundation/pygrace/issues,而历史列表可在 https://github.com/pygrace/pygrace/issues 查找。

主要特性

pygrace 提供了面向对象的 Python 接口,用于高效构建 xmgrace 项目(例如高度可定制的出版物质量单图和多图)。pygrace 提供

  • 从 Python 对象到 xmgrace 项目的对象-关系映射

  • 基于 Python 的交互式 grace> 命令行提示

  • 一组用于绘制 xmgrace Graphs 的高级 Python 函数

当前版本

pygrace 的最新发布版本可在以下网址获得:

https://pypi.ac.cn/project/pygrace

pygrace 采用 3 条款 BSD 许可证分发。

开发版本

您可以在以下网址获取包含所有新功能的最新开发版本:

https://github.com/uqfoundation

如果您有新的贡献,请提交一个拉取请求。

安装

pygrace 可以使用 pip 安装

$ pip install pygrace

假设 xmgrace 已安装并位于用户的 $PATH 上。xmgrace 可在以下网址找到:

https://plasma-gate.weizmann.ac.il/pub/grace/src/

或者,xmgrace 通常可以通过大多数软件包管理器安装。例如

$ apt-get install grace # on Linux
$ brew install grace # on MacOS

安装 X 服务器(例如 xorgxorg-serverxquartz 或类似版本,具体取决于您的操作系统和软件包管理器)也是打开 xmgrace GUI 的必要条件。

需求

pygrace 需要

  • python(或 pypy),>=3.8

  • setuptools>=42

  • cython>=0.29.30

  • numpy>=1.0

  • mpmath>=0.19

额外需求

  • xmgrace>=5.1.14

基本用法

启动一个 pygrace 项目文件

>>> from pygrace.project import Project
>>> plot = Project()

将一个 Graph 添加到 Project 实例

>>> graph = plot.add_graph()
>>> graph.title.text = 'Hello, world!'

将一个 DataSet 添加到图表

>>> data = [(0, 0), (0.5, 0.75), (1, 1)]
>>> dataset = graph.add_dataset(data)

Project 保存到 xmgrace 项目文件(.agr 格式)

>>> plot.saveall('00_helloworld.agr')

然后,使用 xmgrace 打开项目文件

$ xmgrace 00_helloworld.agr
00_helloworld

有关 pygrace 的更多信息,请访问 http://pygrace.rtfd.io 或浏览更多示例 https://github.com/uqfoundation/pygrace/tree/master/examples

例如

$ python 05_colorplot.py
$ xmgrace 05_colorplot.agr
05_colorplot

$ python 08_latexlabels.py
$ xmgrace 08_latexlabels.agr
08_latexlabels

我们还可以在交互式 xmgrace 会话中工作

>>> from pygrace import grace
>>> pg = grace()

直接从Python解释器使用xmgrace方法

>>> import numpy as np
>>> x = np.arange(21) * np.pi/10
>>> pg.plot(x, np.sin(x))
sin

将变量推入xmgrace并与xmgrace脚本语言交互

>>> pg.put('x', x)
>>> pg.put('y', np.cos(x))
>>> pg.eval('s0 line color 2')
>>> pg.eval('plot(x,y)')
cos

使用交互式xmgrace提示

>>> pg.prompt()
grace interface:
vars=
     y
     x
grace> histoPlot(y)
grace> s0 fill color 3
grace> redraw()
grace> exit
histoPlot

检查xmgrace会话中的变量

>>> list(pg.who().keys())
['x', 'y']
>>> pg.who('x')
array([0.        , 0.31415927, 0.62831853, 0.9424778 , 1.25663706,
       1.57079633, 1.88495559, 2.19911486, 2.51327412, 2.82743339,
       3.14159265, 3.45575192, 3.76991118, 4.08407045, 4.39822972,
       4.71238898, 5.02654825, 5.34070751, 5.65486678, 5.96902604,
       6.28318531])

将变量从xmgrace传回Python

>>> cosx = pg.get('y')

使用put、eval和get的快捷键

>>> pg.z = 0.5
>>> pg('print(z)')
0.5
>>> pg.z + cosx
array([ 1.5       ,  1.45105652,  1.30901699,  1.08778525,  0.80901699,
        0.5       ,  0.19098301, -0.08778525, -0.30901699, -0.45105652,
       -0.5       , -0.45105652, -0.30901699, -0.08778525,  0.19098301,
        0.5       ,  0.80901699,  1.08778525,  1.30901699,  1.45105652,
        1.5       ])

从xmgrace删除变量

>>> pg.delete('x')
>>> pg.delete('y')

将当前会话保存到项目文件,然后退出

>>> pg.saveall('histoPlot.agr')
>>> pg.exit()

从保存的项目启动新的交互式xmgrace会话

>>> pg = grace(project='histoPlot.agr')

更多信息

可能最好的入门方式是查看http://pygrace.rtfd.io上的文档。还可以查看pygrace.tests,其中包含一系列演示pygrace许多功能的脚本。您可以使用python -m pygrace.tests运行测试套件。还可以查看https://github.com/uqfoundation/pygrace/tree/master/examples,以了解演示xmgrace项目文件 (.agr) 构建的示例。 https://github.com/uqfoundation/pygrace/tree/master/examples/interactive 包含使用python与实时xmgrace会话交互的示例。源代码相对较好地进行了文档说明,因此一些问题可能可以通过检查代码本身来解决。但是,请随时在github上提交工单,或在stackoverflow上提问(@Mike McKerns)。如果您想分享您如何在工作中使用pygrace,请发送电子邮件(至mmckerns at uqfoundation dot org)。

引用

如果您使用pygrace进行研究并最终发表,我们要求您在出版物中提及以下内容以认可pygrace的使用

Michael McKerns, Dean Malmgren, Mike Stringer, and Daniel Stouffer,
"pygrace: Python bindings to xmgrace", 2005- ;
https://github.com/uqfoundation/pygrace

请参阅https://pygrace.github.io/了解由Dean Malmgren、Mike Stringer和Amaral实验室成员开发的较早版本的pygrace的更多信息,该版本后来由Daniel Stouffer和Stouffer实验室成员维护。此代码已合并到Mike McKerns开发的原始pygrace中。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

pygrace-1.5.tar.gz (529.5 kB 查看哈希值)

上传时间: 源代码

构建分发

pygrace-1.5-py3-none-any.whl (239.0 kB 查看哈希值)

上传时间: Python 3

支持者