我们在坐标轴 中,介绍了集算器中使用的各类坐标轴。在定义了坐标轴后,就可以在它们构建的坐标系中绘制所需图元了。在这里,我们将从最简单的点图元开始,了解如何在指定的位置绘制图形。
点形图是最基本的图元之一,仅由一个逻辑坐标点即可定位;当逻辑坐标使用序列时,可以绘制多个点。
下面的画法绘制的是部分城市人口的散点图:
|
A |
1 |
=canvas() |
2 |
=demo.query("select NAME,POPULATION from STATES where STATEID<6") |
3 |
=A1.plot("BackGround") |
4 |
=A1.plot("EnumAxis","name":"x","allowRegions":false) |
5 |
=A1.plot("NumericAxis","name":"y","location":2,"autoCalcValueRange": false,"maxValue":5.0E7,"format":"#,###.##","transform":1,"scale":1000.0) |
6 |
=A1.plot("Dot","axis1":"x","data1":A2.(NAME),"axis2":"y","data2": A2.(POPULATION)) |
7 |
=A1.draw@p(450,250) |
A1中建立画布,A2中取出绘图数据如下:
A3中绘制白色背景,A4中绘制枚举轴x作为横轴,A5中绘制数值轴y作为纵轴。
A6中绘制点图元,这也是我们在这里关注的图元。
A7中绘图结果如下:
可以看到,在默认情况下,绘制的点为自动设定颜色的圆点。下面我们以这个画法为例,了解点形图的各种绘图属性,并初步认识常见图元的一些共有属性。
图元的数据属性,就是绘制图元的位置坐标。对于点形图,只需要一个坐标点,即一组坐标,即可确定位置。在设定常用图元的数据坐标时,需要选定两个逻辑坐标轴,并分别设定逻辑坐标的属性值或者表达式。选择的两个逻辑坐标轴没有顺序要求,但需要相互匹配,如横轴匹配纵轴,或者极轴匹配角轴。
在这里,设定的逻辑坐标A2.(NAME) 和A2.(POPULATION) 均为序列,表明有多组逻辑坐标,此时将绘制多个点。
在绘制点形图时,可以设定点的形状、颜色、边线等属性,如,修改前面的画法,编辑A6中的绘图属性,设置点形图的外观属性如下:
设定Marker style为菱形,Line color改为浅蓝色,Marker weight增大为6个像素,并将点的Fill color改为渐进的粉红色。修改设定后,绘图如下:
从图中可以看到,点的外观按照设定发生了改变。使用Marker weight属性可以设定绘制的点半径的像素数。如果需要点的尺寸与逻辑值对应,那么可以设定Radius 1和Radius 2属性,它们分别对应数据属性中设定的逻辑轴Axis 1和Axis 2,将由设定的逻辑值分别计算出点的宽度和高度。
当需要使每个点的外观各不相同时,需要将绘图参数设为序列。如继续修改A6中的绘图属性,修改点的颜色属性如下:
此时A7中的绘图结果如下:
当使用序列属性时,如果属性序列的长度较小,在绘图时将循环使用。
在绘制点形图时,有时需要在点旁用文字作出标注,此时可以在点形图的属性编辑中编辑文字相关属性,例如修改上一小节中的统计图,设定点形图的文字属性如下:
设定Text为人口数,并选择了Text font,设定了Text size和Text color,绘图如下:
标注文字将按设定的外观,在坐标点的上方显示。
常用图元有一些共有的属性,如是否可见、透明度等等,我们通过点形图的绘制初步了解这些属性,继续编辑A6中的绘图属性,修改散点图的画法:
修改图元的透明度Transparency为0.5,并勾选Shadow,绘图结果如下:
可以看到,Transparency的修改使绘制的点变淡透明,Shadow设定后可在图形右下产生淡淡的阴影效果。此外,如果将可视设为false,图元将隐藏不绘制;Allow text overlapping和集算器图形之轴图元中提到过的轴标签的允许重叠属性类似,如果选择为false,那么在绘制一组图元时,如果其中某个图元和已绘制的图元有重叠部分,那么将跳过不绘制。