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); 参数介绍
输入参数:
名称 | 类型 | 默认值 | 描述 |
input | field或group | 无 | 需要画图的源数据 |
labels | string list 字符串列表 | {"x","y"} | 坐标轴标号 |
ticks | integer list 整数列表 | 10 | 刻度线的大约数目 |
corners | vector list 向量列表或object 对象 | {[xmin,ymin],[xmax,ymax]} | 画图界限 |
adjust | flag 旗标 | 与输入值相关 | 0:端点不调整; 1:端点调整以与刻度线吻合 |
frame | 整数 integer | 0 | 画图的框架类型 |
type | string list 字符串列表 | “lin” | 画图类型 |
grid | integer 整数 | 0 | 网格类型 |
aspect | scalar标量或string字符串 | 1.0 | y:x 画图的比率 |
colors | vector list矢量列表或string list 字符串列表 | 大约值 | 标注的颜色 |
annotation | string list字符串列表 | “all” | 标注 |
labelscale | scalar标量 | 1.0 | 坐标轴的大小因子 |
font | string字符串 | 标准 | 坐标轴的字体 |
input2 | field或group | 无 | 要画图的第二组数据 |
label2 | string | {"y2"} | 第二个y轴 |
ticks2 | integer | 与输入值相关 | 第二个y轴刻度线的大约数目 |
corners2 | vector或object | {[ymin,ymax]} | 第二个y轴的画图界限 |
type2 | string | "lin" | 第二个y轴的画图类型 |
xticklocations | scalar list | 大约值 | x刻度位置 |
y1ticklocations | scalar list | 大约值 | y1刻度位置 |
y2ticklocations | scalar list | 大约值 | y2刻度位置 |
xticklabels | string list | xticklocations | x刻度线 |
y1ticklabels | string list | y1ticklocations | y1刻度线 |
y2ticklabels | string list | y2ticklocations | y2刻度线 |
输出值:
函数细节:
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的魅力,需要详细分解一下:
第一条主线是对数据自动着色,并画图。
中间一条主线: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文件详解