xmgrace的Python绑定
项目描述
关于Pygrace
pygrace被设计用来从Python中构建和使用xmgrace项目。pygrace提供了一系列类,作为xmgrace项目元素的编辑模板。pygrace的继承结构反映了xmgrace的结构。
pygrace Project 对象用于构建和保存xmgrace项目文件 (.agr)。项目文件捕获了xmgrace会话的状态,包括图形、设置和当前变量。
有关所有 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 的最新发布版本可在以下网址获得:
pygrace 采用 3 条款 BSD 许可证分发。
开发版本
您可以在以下网址获取包含所有新功能的最新开发版本:
如果您有新的贡献,请提交一个拉取请求。
安装
pygrace 可以使用 pip 安装
$ pip install pygrace
假设 xmgrace 已安装并位于用户的 $PATH 上。xmgrace 可在以下网址找到:
或者,xmgrace 通常可以通过大多数软件包管理器安装。例如
$ apt-get install grace # on Linux $ brew install grace # on MacOS
安装 X 服务器(例如 xorg、xorg-server、xquartz 或类似版本,具体取决于您的操作系统和软件包管理器)也是打开 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
有关 pygrace 的更多信息,请访问 http://pygrace.rtfd.io 或浏览更多示例 https://github.com/uqfoundation/pygrace/tree/master/examples。
例如
$ python 05_colorplot.py $ xmgrace 05_colorplot.agr
和
$ python 08_latexlabels.py $ xmgrace 08_latexlabels.agr
我们还可以在交互式 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))
将变量推入xmgrace并与xmgrace脚本语言交互
>>> pg.put('x', x) >>> pg.put('y', np.cos(x)) >>> pg.eval('s0 line color 2') >>> pg.eval('plot(x,y)')
使用交互式xmgrace提示
>>> pg.prompt() grace interface: vars= y x grace> histoPlot(y) grace> s0 fill color 3 grace> redraw() grace> exit
检查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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b6b7fb6cebe879c70d888a4eaaaa22dbe265eabe357b24cfb5957d1e8df6f896 |
|
MD5 | 83fb6bc5e9c2b62e5319460f1a0d14e2 |
|
BLAKE2b-256 | 61fd1c22964f436396aaeddc71cfce524eb7b951750fcb74f590d24deb6dc686 |