找回密码
 注册
Simdroid-非首页
查看: 1264|回复: 30

【原创】:如何制定 Ticks (刻度)

[复制链接]
发表于 2007-8-20 13:42:28 | 显示全部楼层 |阅读模式 来自 广东广州
Origin 坐标轴的 Ticks 可以在轴属性的 Tick Labels 标签上设置,具体的 Help 可参考帮助文档中的

The Graph: Axes > Reference Section: The Axis Dialog Box > The Tick Labels Tab

这一章。

以下介绍一下几个主要的 Tick Type,并给出一些例子。

[ 本帖最后由 蓝色梧桐 于 2007-8-24 00:30 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

 楼主| 发表于 2007-8-20 13:43:03 | 显示全部楼层 来自 广东广州

Text from Data set

Simdroid开发平台
这种 Tick Type 需要指定一个额外的 column,这个 column 是一些 text,当指定了这个 column 后,Origin会检查 Major Tick 的值所对应的那个 row (Origin 只显示 Major Tick 上的数值),然后用这个 cell 的text 替换 Major Tick 上的值。有点晕,呵呵,比如下面的例子:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2007-8-20 13:43:52 | 显示全部楼层 来自 广东广州

Text from Data set

若 column B 对 Column A 做图,会有:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2007-8-20 13:44:26 | 显示全部楼层 来自 广东广州

Text from Data set

此时若 Tick Type 选择 Text fromDataset,并指定为 Column C,可以得到以下结果。原来值为 2 的地方被 Are 替代,因为这一行的 X 值为 2。因为column C 对应的 X 无 0 这个值,所以 0 的 tick 没有了。依次类推。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2007-8-20 13:44:55 | 显示全部楼层 来自 广东广州

Tick-indexed Datas

这种 Type 更自由一些。它同样需要指定一个 Column,然后按从上到下的顺序把 column 的内容依次放入 Major Tick 里面。并且支持转义字符。比如以下例子:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2007-8-20 13:45:20 | 显示全部楼层 来自 广东广州

Tick-indexed Datas

选择了 Tick-indexed Datas 并指定为 Column C 后,可以得到下面的结果。可见,1E2,1E3......,依次替换了 0,2,4......。(10\+(2) 表示 10 的 2 次方,\ 为转义符,+(2) 表示上标)。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2007-8-20 13:46:44 | 显示全部楼层 来自 广东广州

layer.x.ticksbydata$

另外,如果用户想制定非均匀的坐标 Ticks,就不能直接从Dialog 上选了,需要用到 layer.x.ticksbydata$ 这个属性。Origin 跟其他编程语言一样,也是面向对象。每个window 可以有 多个 Layer,每个 Layer 又有多个 Axis,Axis 上就包含了各种轴的属性。比如一下的例子,用户想让Tick 显示在 Column C 上的值上:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2007-8-20 13:48:21 | 显示全部楼层 来自 广东广州

layer.x.ticksbydata$

首先 Highlight column A B,画出图,然后激活 graph window,在 Script Window 上敲入:

  1. layer.x.ticksbydata$ = Data1_C
复制代码

假设 worksheet 的名字叫 Data1。(不知道 Script Window?查一下 Help)
可以得到:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2007-8-20 13:48:50 | 显示全部楼层 来自 广东广州

layer.x.ticksbydata$

这只能显示整数部分?!!别急,在这里设置小数点的位置就可以了。
(Note:layer.x.ticksbydata$ 这个属性只有 tick type 是 Numeric 或者 Text & Numeric 才行)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

 楼主| 发表于 2007-8-20 13:49:37 | 显示全部楼层 来自 广东广州

layer.x.ticksbydata$

结果如下:

其他的 Tick Type,请参看 Help。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2007-9-5 20:55:57 | 显示全部楼层 来自 湖北武汉
这个对我有用

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2007-9-6 23:29:15 | 显示全部楼层 来自 广东广州
若要跟贴,请提出相关内容的问题!或者开新贴。ls 注册时间不长,发了很多类似的回帖,我只在这里小扣两分,意思一下,见谅。只是希望能先看看论坛的新手入门板块,学会如何在论坛 “生存”。

[ 本帖最后由 蓝色梧桐 于 2007-9-6 23:31 编辑 ]
回复 不支持

使用道具 举报

发表于 2007-11-28 15:04:20 | 显示全部楼层 来自 北京海淀

回复 #8 蓝色梧桐 的帖子

为什么我在script window中输入这个命令(layer.x.ticksbydata$ = Data1_C)后,出现command error的提示呀?
查了help,在layer.axis.命令集里面没搜到ticksbydata这一项哦,能否请版主再指点下,谢谢啦
回复 不支持

使用道具 举报

 楼主| 发表于 2007-11-28 15:25:55 | 显示全部楼层 来自 广东广州
1. Graph window should be active when running the script
2. Make sure your dataset name is correct
3. layer.x.ticksbydata$

[ 本帖最后由 蓝色梧桐 于 2007-11-28 15:27 编辑 ]
回复 不支持

使用道具 举报

发表于 2007-12-6 01:53:05 | 显示全部楼层 来自 辽宁沈阳
对y轴也一样有效吧
回复 不支持

使用道具 举报

发表于 2008-5-27 14:29:28 | 显示全部楼层 来自 江苏徐州

回复 1# 的帖子

还真被楼上说中了,Y轴不适用。
使用layer.x.ticksbydata$ = Data1_A;,结果,x轴就成了不均匀的刻度,正是我们想要的。
但是,使用layer.y.ticksbydata$ = Data1_B;的时候,y轴的刻度没有了,消失了!而且没有办法恢复原貌!

版主,你碰到过这个问题吗?不吝赐教!
回复 不支持

使用道具 举报

 楼主| 发表于 2008-5-27 16:26:30 | 显示全部楼层 来自 广东广州
Origin version and OPJ please!
回复 不支持

使用道具 举报

发表于 2008-5-27 21:23:49 | 显示全部楼层 来自 江苏徐州
origin7.5 和8.0,command:layer.y.ticksbydata$=data_b都不行!结果都是y轴的刻度消失!

[ 本帖最后由 jsswll 于 2008-5-27 21:34 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2008-5-27 21:28:13 | 显示全部楼层 来自 江苏徐州

回复 13# 的帖子

你的origin版本可能是7.0的,我在7.0上使用layer.x.ticksbydata$也是显示command error;
P.S.我又在origin6.0,5.0,4.0上尝试,都显示command error。layer.x.可能是LabTalk在origin7.5才新增加的语句和功能吧!
果然,在origin7.0的LabTalk Reference Version 7.0里面,是
layer.axis.spaceRead/write, numeric. Same as layer.axis.type.
layer.axis.thicknessRead/write, numeric. Width of axis in points.
layer.axis.ticksRead/write, numeric. Controls the major and minor ticks as follows: 0 = no ticks, 1 = major in, 2 = major out, 4 = minor in, and 8 = minor out. Numbers can be combined, so 3 = major ticks in and out.
layer.axis.toRead/write, numeric. Last axis scale value.
没有:layer.axis.ticksbydata$这个命令
——————————————————————————————————————————————————————————————————————————————————————
在origin7.5的programming,LabTalk Language Reference才第一次出现这个命令。
layer.axis.TicksByData$
Read/write, numeric
Specifies a dataset to control tick mark position and labels.


[ 本帖最后由 jsswll 于 2008-5-27 21:54 编辑 ]

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2008-5-28 11:27:47 | 显示全部楼层 来自 广东广州
Sorry,之前没有留意到这个属性需要数据为升序排列。增加一列 C,令

col(c) = sort(col(b))

即可!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-20 21:17 , Processed in 0.060294 second(s), 20 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表