堆栈图布局(Stack Layout)能够计算二维数组每一数据层的基线,以方便将各数据层叠加起来。本文讲解堆栈图的制作方法。
先说说什么是堆栈图。
例如,有如下情况:
某公司,销售三种产品:个人电脑、智能手机、软件。
2005年,三种产品的利润分别为3000、2000、1100万。
2006年,三种产品的利润分别为1300、4000、1700万。
计算可得,2005年总利润为6100万,2006年为7000万。
如果要将2005年的利润用柱形表示,那么应该画三个矩形,三个矩形堆叠在一起。这时候就有一个问题:每一个矩形的起始y坐标是多少,高应该是多少。
输入数组,直接计算出上述问题的,就是堆栈图布局。
1. 数据
某公司销售个人电脑、智能手机、软件的数据如下:
var dataset = [
{ name: "PC" ,
sales: [ { year:2005, profit: 3000 },
{ year:2006, profit: 1300 },
{ year:2007, profit: 3700 },
{ year:2008, profit: 4900 },
{ year:2009, profit: 700 }] },
{ name: "SmartPhone" ,
sales: [ { year:2005, profit: 2000 },
{ year:2006, profit: 4000 },
{ year:2007, profit: 1810 },
{ year:2008, profit: 6540 },
{ year:2009, profit: 2820 }] },
{ name: "Software" ,
sales: [ { year:2005, profit: 1100 },
{ year:2006, profit: 1700 },
{ year:2007, profit: 1680 },
{ year:2008, profit: 4000 },
{ year:2009, profit: 4900 }] }
];
dataset是一个数组,数组的每一项是一个对象,对象里含有name和sales。name是产品名、sales是销售情况。sales也是一个数组,每一项也是对象,对象里包含有year表示年份、profit表示利润。