计算化学公社
标题: [更新至v1.2版本]用于绘制曲线样式的反应能量变化图的小程序 [打印本页]
作者Author: KAIMISITERUI 时间: 2024-11-29 23:52
标题: [更新至v1.2版本]用于绘制曲线样式的反应能量变化图的小程序
本帖最后由 KAIMISITERUI 于 2024-12-9 19:08 编辑
v1.2版本更新:
打包好的可执行exe文件:
重点更新:1.修复了调整显示页面的大小会影响显示效果的问题,新版本可以随意修改页面大小和比例了。
2.优化了导出cdxml文件的页面数量,使之更加合理。
3.修复了表格中有空行时导出数据会报错的问题。
4.如果有多个标志处于相同的位置,现在只会绘制一个
新增功能:
1. 重新调整了底部工具栏的代码,现在所有功能都可以正常使用了
(, 下载次数 Times of downloads: 9)
1. 点击小房子按钮现在可以正常显示完整视图,效果等同于Show All
2. 前进后退按钮用于调整到前/后一个视角
3. 十字按钮左键用于拖动图像,右键拖动用于缩放,鼠标滚轮也可以缩放
4. 放大镜按钮用于矩形缩放
5. 滑块按钮用于调整显示范围
6. 点击保存图片按钮会出现对话框,输入ppi数值(比如一般期刊要求是300),可以直接保存高清大图。
2. 新增Show Grid选项,可以选择是否显示网格线
3. 表格区域现在可以右键点击数据区域的单元格,弹出菜单,此时选择删除行/列会删除单元格所在的行/列,还可以在单元格上侧/左侧添加行/列。
(, 下载次数 Times of downloads: 8)
4.新增Open Table选项,如果不小心把表格关闭了可以点击重新打开。
注;所有版本保存的数据格式都是通用的,新版本也可以打开老版本保存的数据。建议大家使用最新的版本。
**********************以下是旧版本介绍****************************
v1.1版本更新:
v1.1打包好的exe文件下载地址:
更新内容:
1.修复了绘制多条带有圆点的曲线时输出的cdxml文件中有些圆点会在曲线图层下面的问题。
2.当生成图像过大时,程序会自动拓展生成的cdxml文件的页面个数。
3.进一步优化了显示效果,目前程序模拟的输出效果和chemdraw绘制的结果几乎一致了,因此也增加了一些新功能。
新版本界面如下:
(, 下载次数 Times of downloads: 8)
1. 增加了Curve Width 选项,用于调整曲线宽度 (默认0.6)
2. 增加了Font Size 选项,用于调整字体大小 (默认10.0)
3. 增加了Text Space 选项,用于调整文字和标志之间的距离(默认3.0)
4. 增加了Bond Width选项,用于调整线段的宽度 (默认2.0)
5. 增加了Label-Energy Layout 选项,设置能量数值和标签的位置关系,Sperate(分开显示),Combine(合并成一行显示)
6. 增加了Target location选项,用于设置文本和图形之间的位置关系:C (center) :中心位置,W S A D分别表示文本在图形的上/下/左/右
Sperate 和 Target location 组合在一起就可以有10种位置显示效果
7. 增加了Show Marker选项:勾选后会在屏幕中心显示一个苯环结构,大小和chemdraw中绘制的一致,用于判断曲线的大小是否合适。
(, 下载次数 Times of downloads: 7)
关于位置设置:
如果想单独设置某个标签的位置,可以在单元格中添加逗号和位置信息,比如0.0(TS1),sw。第一个字母为s或者c,代表Label-Energy Layout中的Sperate或Combine,第二个字母为c/w/s/a/d中的一个,和Target location中的一致。程序会优先读取表格中的位置信息,如果没有则读取全局设置。表格保存的同时位置信息也会保存,可以避免多次修改。
比如:
(, 下载次数 Times of downloads: 9)
(, 下载次数 Times of downloads: 9)
剩下的在Chemdraw中微调就会很快了。
注:1. 新加的功能较多,有bug可以在评论区里反馈。
2. 修改显示窗口的纵横比会导致显示的效果和导出的效果有差别,目前还没有解决,大家使用的时候最好不要调整窗口比例。(v1.2已解决)
v1.0版本:
最近比较流行绘制曲线样式的反应能量变化图,这样看上去会更有势能面的‘’感觉‘’,但又没有找到什么工具可以直接绘制,直接在Chemdraw中手搓又过于繁琐,干脆写了个小程序,用于绘制曲线能量变化图,生成的cdxml文件可以被Chemdraw读取,方便后续编辑。使用方法如下:
1.安装:
该程序使用python语言编写,需要额外安装的库有numpy和matplotlib,如果对python不熟悉的话可以直接在网盘下载打包好的exe版本:
2.使用:
双击进入程序,会显示两个界面,数据界面如下:
(, 下载次数 Times of downloads: 9)
这个界面用于设置反应能量变化的信息。前三列分别用于设置曲线颜色,标志颜色和文本颜色,双击即可进入颜色选择界面,后面为能量信息,如果有标签的话写在括号里,比如0.0(R)。下面的按钮依次为:
1. Add Row:添加行
2. Add Column:添加列
3. Delete Row:删除最后一行
4. Delete Column:删除最后一列
5. Save Data:把表格中的数据保存在当前目录下table_data.json中
6. Load Data:读取当前目录下的table_data.json文件,用于快速恢复已经编辑好的数据。
在数据选择界面输入输入0.0(R),15.0(TS),0.0(P),在主界面显示如下:
(, 下载次数 Times of downloads: 8)
下图为颜色切换界面,可以快速自定义需要的颜色:
(, 下载次数 Times of downloads: 8)
主界面的左侧会显示绘制的图形,滚轮可以放大缩小,便于观察。底部也有一些调整按钮,右侧则是调整图像的选项,分别如下:
Scale Factor: 整体放大缩小
Scale Factor x: 沿x轴放大缩小
Scale Factor y: 沿y轴放大缩小
注:以上缩放只针对曲线大小,不会缩放标志和字体,且会影响输出的cdxml文件中的实际大小。
Base curve: 用于设置曲线的弧度,数值越大曲线弧度越大,为0则变成直线
(, 下载次数 Times of downloads: 9)
(, 下载次数 Times of downloads: 8)
(, 下载次数 Times of downloads: 9)
Disp factor: 用于微调曲线,曲线x轴数值变化越大,弧度越大:
如下图所示,当两条曲线的x轴范围区别较大时单纯通过调整Base curve难以达到满意的效果:Base curve = 0.3时下面的曲线弧度已经合适,但是上面的曲线弧度太小。而当Base curve = 0.8时下面的曲线弧度又会过大,因此,可以通过调整Dispfactor使得两条曲线都具有合适的弧度。
(, 下载次数 Times of downloads: 8)
(, 下载次数 Times of downloads: 9)
(, 下载次数 Times of downloads: 9)
Curve factor: 用于微调曲线,曲线y轴数值变化越大,弧度越大。原理和效果同上,只是根据y轴数值变化。
(, 下载次数 Times of downloads: 9)
(, 下载次数 Times of downloads: 7)
(, 下载次数 Times of downloads: 8)
Bond length: 调整横线的长度
Circle Radius: 调整圆的半径
Shape:共有三个选择,分别为Line(横线),circle(圆)和None(没有标志),效果如下:
(, 下载次数 Times of downloads: 9)
(, 下载次数 Times of downloads: 9)
(, 下载次数 Times of downloads: 8)
Connection:设置曲线和线段或圆的的连接方式:Center(中心连接),Side(边缘连接)
Line type:设置曲线的格式:Solid(实线),Dash(虚线)
(, 下载次数 Times of downloads: 9)
Show all: 点击展示完整的曲线。
绘制完成后点击ExportCDXML即可生成output.cdxml文件
复杂的例子:(上:程序显示,下:Chemdraw输出结果)
(, 下载次数 Times of downloads: 8)
(, 下载次数 Times of downloads: 8)
注:1.程序中显示的图像通过matplotlib绘制而来,尽量还原在Chemdraw中的效果,但是没法百分百还原,还是应以输出结果为准。缩放图像请使用滚轮,拖动图像点击图表下方工具栏的十字按钮。
2. 生成的cdxml文件默认的格式为ACS document 1996,字体为Arial
3. 像上图中为了实现第二条曲线从IM1出发,会导致IM1处有两组数据,记得删除其中一组。(v1.2已解决)
4. 该程序未经过大量测试,可能会有bug,及时保存。
最后如果大家有什么问题和建议都可以在本帖下留言,我会在能力所及的范围内进行修改。如果大家觉得好用的话给我点个赞即可


谢谢!
作者Author: KAIMISITERUI 时间: 2024-12-2 21:40
之前设计这个程序的时候设想的功能都已经实现了
。上个版本文本显示的位置一直搞不定,最近终于解决了,就把之前写好的功能也加了上来。
作者Author: nianbin 时间: 2024-12-31 21:20
真是个好东西呀
作者Author: Suviaor 时间: 2025-1-5 05:55
大佬,横线与横线之间的距离有没有办法调整哇
作者Author: KAIMISITERUI 时间: 2025-1-5 21:16
可以通过调整 Scale Factor x 调整横线之间距离
作者Author: mfdsrax2 时间: 2025-1-16 21:47
调整颜色的按钮在哪里啊?
作者Author: KAIMISITERUI 时间: 2025-1-17 14:32
直接双击表格区域前三列,会弹出颜色选择界面
作者Author: 芥子 时间: 2025-3-6 16:31
可以把数字去掉吗?线只能统一用实线或者虚线吗?
作者Author: KAIMISITERUI 时间: 2025-3-7 15:49
目前还没有这些功能,我先记下来,可以下个版本加上
作者Author: yantang 时间: 2025-3-15 23:22
本帖最后由 yantang 于 2025-3-15 23:25 编辑
刚好需要!
欢迎光临 计算化学公社 (http://bbs.keinsci.com/) |
Powered by Discuz! X3.3 |