当使用多系列的数据绘制柱图时,有时并不想将它们并列放置,而是需要将同一个分类中的数据堆叠起来,这就是堆积图。我们来看下面的画法:
|
A |
1 |
=canvas() |
2 |
=demo.query("select * from GYMSCORE") |
3 |
=A1.plot("BackGround") |
4 |
=A1.plot("EnumAxis","name":"x") |
5 |
=A1.plot("NumericAxis","name":"y","location":2) |
6 |
=A1.plot("Column","stackType":2,"axis1":"x","data1":A2.(NAME+","+ EVENT),"axis2":"y","data2":A2.(SCORE)) |
7 |
=A1.plot("Line","stackType":2,"axis1":"x","data1":A2.(NAME+","+EVENT), "axis2":"y","data2":A2.(SCORE)) |
8 |
=A1.draw@p(450,200) |
线图元也可以绘制堆积图,属性和柱图元类似,因此在这个画法中,同时绘制了柱图和折线图。和前面的例子不同,在这里设定柱图元和线图元的数据属性时,Data1的数据为A2.(NAME+","+EVENT),以NAME作为枚举轴上的分类数据,EVENT作为系列数据。由于这里需要绘制堆积图,因此A6中的柱图元与A7中的线图元都设定了Stack type属性,将其由默认No stack的改为Stacked by value,如下:
此时的绘图结果如下:
可以看到,在绘制每位运动员的图形时,将各个项目的得分堆叠起来。这样,在绘制结果中,可以看到每位运动员的总成绩。
另一种堆积图的堆积方式是Stacked by percent,即设定如下:
此时绘图结果如下:
在按占比堆积时,每个分类中将绘制各系列数据的占比,而各个分类的数据总和都是100%。这时可以在图中比较数据的占比情况,而每个分类的总值则失去了意义。