涨价通知函英文版:浅谈Origin批量作图

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 11:42:42
浅谈Origin批量作图

摘要部分:

本文介绍的技术适用于大量、重复地对某一类数据的作图任务。

简单来说,如果你需要对1000种不同参数下的度分布数据作1000幅度分布或者累计度分布的图,那本文可以有些帮助。

软件:Origin

如果你用Origin8的话,那就更好了。 Origin其他版本可以参考,8以前的Origin菜单项目只会比8少。

先给个效果图:


这副图是根据累积度分布数据:
Node 8050
Total 10000
Parameter M=5 DR=0.05 GR=0.05 R=0.1

10 1
11 0.999875
12 0.999125
13 0.996375
……
33 0.000625
34 0.00025
这种单个文本画出的。数据分为两部分,前三行为参数,也就是得到这个数值模拟结果的参数(可选,后面将介绍如何自定义),第二部分当然是数值的结果啦(这里以累积度分布举例,第一列是度数据,第二列是累积概率)。

所需材料准备:
基于Labtalk语言的C文件,信息过滤文件OIF,和作图模板OTP,如下图所示,另外还需要数据表模板OTW,存放在Origin的目录下。

Origin安装目录\Samples\Programming\Automation(适用于安装版的Origin7.5),至于精简绿色版和其他版本,可以直接套用,本文已附Origin官方样本Automation.rar,点此下载


制作过程:

 1、 数据表模板OTW文件:
以累积度分布为例,首先打开Origin8(貌似是句废话),新建一个Workbook,然后按照自己的喜好自定义吧。
Workbook是用来存储导入的数据,为下一步处理和画图做准备的,所以还是要跟数据文件保持相同样式(对累积度分布,就是两列数据),如图示:


如果想显示数据中的参数,把菜单Edit -> Button Edit Mode勾上,添加可见的文本“Parameter:”和“Node”,在自己选定的位置上再新建文本,敲敲空格就可以了,选中这个文本,右击鼠标 -> Programming Control,出现:

尤其要在Object Name上写你希望显示的变量名字,我当然是要它显示Node的数字8050和Parameter的“M=5 DR=0.05 GR=0.05 R=0.1”了,还可以在Mouse Click里锁定这些显示的位置,这样在查看数据的时候就不会把参数什么的已经排布好的地方拖乱了。
编辑完后,退出Button Edit Mode,另存这个Work book:菜单File -> Save Template As,选个存放地址再给个文件名,就好了。


2、 绘图模板文件OTP:
跟前面OTW的步骤很多雷同,我就简单介绍下了。
新建个Graph文件,做一个空数据的图,然后同样地,进入Button Edit Mode,编辑完之后另存为模板文件OTP。
再贴个完整的OTP的图样:


3、 编辑C文件:
这么高深的C文件,当然是拿模板里的修改最方便了,其中有一句:
// Set up name of custom template to be used for creating a graph
先把第2步编辑的OTP文件找个新文件夹存着,如“sample”把下面接着的那句改成OTP文件的地址。注意,这里地址用的是\\而不是\。如:
string strGraphTemplateName = "C:\\Users\\Kong hui\\Desktop\\sample\\Cumulative Degree Distribution(Log-log).otp";
还有一个地方: // First build name for bmp file
这里可以定义输出图像的名称和存放地址,同样,我们定义到sample文件夹。
string strImageFileName ="C:\\Users\\Kong hui\\Desktop\\sample\\" + strNode + ".bmp";
后面还有一部分:
// Use LabTalk Image object
using Image = LabTalk.Image; // access Image object
Image.FileName$ = strImageFileName; // set export file name
Image.ShowOptions = 0
; // turn off options dialog
Image.Export.PagePixel( "bmp", 1024, 768, 32, 0 ); // perform export
这里可以定义图像格式、分辨率、色彩,等等。功能多多,没事的时候可以多调几个玩玩。

4、 信息过滤文件OIF(最麻烦的部分):
首先把前一步制作的OTW文件复制到Origin.exe那个文件夹里,在Origin里通过菜单File -> Import -> Import Wizard调出文件导入向导,指向我们的Sample.txt数据文件,在Template这里选刚才放好的数据表样板(如下图),然后下一步。

接下来是导入的文件如何命名的问题,这里我选worksheet with variable -> Node,

下一步勾Specify location of variable names and values using delimiters定义我们的系统变量,到自定义页面:

这里我们有3组变量:Node、Total和Parameter,搞定后下一步到最后的保存页面,记得一定要勾Save filter,否则第4步就得全部重来一遍。

 

勾最后的过滤选项,下一步后,输入如下命令:
// OC file is located in Subfolder - first build path to this file
%a=C:\;
%b=Users\Kong hui\Desktop\sample\Cumulative Degree Distribution (Log-Log).c;
%z=%a%b;
iErr = run.LoadOC("%z");
if(0 != iErr)
{
type -b Could not load and compile Origni C file to perform post-processing.;
break;
}
Doitnow13(); // 这里的Doitnow13也可以是其他的一些名字,看各位在第三步的C文件里定义的程序名了。

Check:在sample文件夹里应该有一个OIF、一个OTP和一个C文件。另外还有个数据文件sample.txt,其内容如本文开始介绍的那样。
新开一个Origin窗口,把里面的Folder1和Book1全部删掉,然后把sample.txt拖到Origin窗口里,sample文件夹里出现个新的bmp图像,就是本文的第一张图啦。

再看看origin里的数据:




大功告成,谢谢观赏!

批量画图??
多找几个相同类型的数据文件么(多复制几个“sample.txt”么,顺便把里面的数据少许改下)。
一起拖进Origin里,是不是很快就给这些数据画好图了:)


技术指标:
一次最好不要超过200张,否则等待的时候会相当无聊。
超过400张/次,Origin8会有一半的概率无响应,概率大小依电脑性能而定。


本文中的一些图片上有个图标,我从头到尾都没介绍过,不知道哪位能指出它的出处呢?呵呵,知道的应该都是职业玩家,顺便拿那个图标当水印了。

顺便祝明天的我阳历生日快乐,祝下周日的我阴历生日快乐。


一年多以前搞这个技术也花了我的不少时间,而且国内迄今为止没有任何书和资料对这部分做过这么详细的介绍。
一切转载事项请注明出处,引用请联系我:konghui@nuaa.edu.cn ,或者在博客中短消息。