qlearner的个人博客分享 http://blog.sciencenet.cn/u/qlearner

博文

OpenDX Plot模块详解

已有 3782 次阅读 2015-3-9 21:12 |个人分类:编程学习|系统分类:科研笔记

Plot模块可以创建一个二维图形。
语法:
plot = Plot(input, labels, ticks, corners, adjust, frame, type, grid,
                 aspect, colors, annotation, labelscale, font, input2,
                 label2, ticks2, corners2, type2,
                 xticklocations, y1ticklocations, y2ticklocations,
                 xticklabels, y1ticklabels, y2ticklabels);  
参数介绍
输入参数:
名称类型默认值描述
inputfield或group需要画图的源数据
labelsstring list 字符串列表{"x","y"}坐标轴标号
ticksinteger list 整数列表10刻度线的大约数目
cornersvector list 向量列表或object 对象{[xmin,ymin],[xmax,ymax]}画图界限
adjustflag 旗标与输入值相关0:端点不调整;
1:端点调整以与刻度线吻合
frame整数 integer0画图的框架类型
typestring list 字符串列表“lin”画图类型
gridinteger 整数 0网格类型
aspectscalar标量或string字符串1.0y:x 画图的比率
colorsvector list矢量列表或string list 字符串列表大约值标注的颜色
annotationstring list字符串列表“all”标注
labelscalescalar标量1.0坐标轴的大小因子
fontstring字符串标准坐标轴的字体
input2field或group要画图的第二组数据
label2string{"y2"}第二个y轴
ticks2integer与输入值相关第二个y轴刻度线的大约数目
corners2vector或object{[ymin,ymax]}第二个y轴的画图界限
type2string"lin"第二个y轴的画图类型
xticklocationsscalar list大约值x刻度位置
y1ticklocationsscalar list大约值y1刻度位置
y2ticklocationsscalar list大约值y2刻度位置
xticklabelsstring listxticklocationsx刻度线
y1ticklabelsstring listy1ticklocationsy1刻度线
y2ticklabelsstring listy2ticklocationsy2刻度线

输出值:
名称类型描述
plotfield画图

函数细节:
Plot模块可以创建二维的一条线或多条线。下面的画图细节可以应用在单条线上,也可以与Options模块组合应用在多条线上(在传入Plot之前)。
input:是一个field或有多个fields的group,每个field有一维的位置positions代表x轴,一维的data代表y轴。如果input是有多个fields的group,那么每个field就画一条线。
也可以有element type为lines的connections组件存在,将positions连接起来;如果没有这个connections组件,就自动加上一个。input也可以由colors组件,输出值保持该组件不变;如果没有colors组件,画出的线就是白色的。    

labels:指定坐标轴名称。

ticks:指定坐标轴上刻度线的数目,默认是10。如果ticks是一个标量,那么x轴和y轴的刻度线大致相等;如果是一个二元整数列表,那么第一个数是x轴的刻度线数目,第二个数是y轴的。

corners:指定坐标轴的界限。可以是一个矢量列表vector list或对象object。如果是前者,那么超出corners范围的点将会从图中去除;如果是后者,模块决定整个object的x和y的最大最小值,然后画图。

adjust:决定坐标轴是否在刻度线处停止(即两者是不是可以不重合)。

frame:决定画图框架。所有情况下,坐标轴和刻度线都在图形的左边和下方。当frame=1时,在上方和右边画上没有刻度的线。当frame=2时,上方和右边画上有主刻度线和副刻度线的线条。

type:决定画图类型。是一个字符串或字符串列表,即:
          1、lin:线性坐标;
          2、log:对数坐标;
          3、任意前两种的组合,前一个用于x轴,后一个用于y轴。

grid:决定是否和怎样在主刻度线上画网格。如果grid=0,无网格;如果grid=1,在主刻度线上水平画网格;grid=2,在主刻度线上垂直画网格;grid=3,主刻度线上水平和垂直方向都画。如果grid不等于0,那么adjust设为1。

aspect:设定y:x的比例。默认是1。如果Plot简单地使用数据的真实比例,则aspect=inherent。注意,如果input2也有输入,那么即使设置了inherent,aspect还是1。

colors:和下面的annotation一起用,可以用来设置Plot的一个或多个组件的颜色。
可以是一个颜色(一个RGB矢量或一个颜色的字符串名字)或一组颜色。使用字符串名字时需要来自已定义的颜色字符串。如果是一个颜色,且annotation没有指定或annotation=all,那么这个颜色用于所有的annotation。否则,colors的列表与annotation的数目一一对应。默认背景是不画的。

annotation:可以是以下值:all、axes、background、grid、labels或ticks。

labelscale:改变坐标轴和刻度线的大小。

font:设定标签的字体。

input2、label2、ticks2、corners2、type2是对第二个y轴的设定,意义同前。

xticklocations、y1ticklocations、y2ticklocations是精确设定坐标轴的刻度位置。一旦设定这些值,将会覆盖之前ticks所设定的值。

xticklables、y1ticklabels、y2ticklabels与上面的ticklocations联合使用。


DXsample/directory/tutorial/Plot.net非常重要,展现了Plot的魅力,需要详细分解一下:
unnamed0.png
第一条主线是对数据自动着色,并画图。
中间一条主线:Slab切片,用来取出特定线上的数值(网格必须是规则的)。
Slab的参数:dimension指定在哪个维度上进行切片,x、y、z轴可以写成0、1、2。这与connections组件的方向有关;positions是在哪个地方切片。
Tube用来将线转化成立体的管,diameter参数指定管的直径
最后一条主线:Mark将positions组件标识成data组件,从而使compute模块可以进行操作。Compute取出positions的x分量,然后Unmark重新变换回去。Options可以对一个对象组合若干个属性。比如可以对Plot说明图线上的点是什么形状,每隔多少个显示等等。




https://blog.sciencenet.cn/blog-441611-873242.html

上一篇:OpenDX 数据类型详解
下一篇:OpenDX PlotLine.net文件详解
收藏 IP: 210.72.136.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 15:13

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部