类Javascript的透视分析功能

pivotage分析是什么

轴心分析是对数据的采集、筛选、分析、比较和映射,用于发现数据的变化趋势和不同因素造成的差异,在销售、统计、财务等方面都非常有用。它经常用于某些管理软件中。

接下来,我们用excel来描述枢轴分析和枢轴表是什么。

现在我使用Excel的数据透视分析iPhone手机在中国的销售数据和美国在20132014和2015,从而总结出iPhone手机的销售趋势。

申明:所有数据都是自己编的,没有任何参考价值。

Excel数据透视表和透视图

这是在中国的iPhone手机的销售,美国在201320142015年。


为了发现201320142015年内每个国家手机销售的变化,你需要插入一个数据透视表并配置数据;


根据配置获取数据透视表


通过数据透视表,不难看出中国总销售和在美国的总销量。



枢轴


根据这张照片,在中国iPhone的销量在过去几年大幅下降。



为了观察中国和美国之间的销售差距,它配置的数据面板如下是必须的。(由国家和产品分类)


数据透视表


枢轴


可以发现,自14年以来,iPhone手机在中国的销量已经低于美国,其价格与美国之间的差别已经越来越少了。



在分析了iPhone手机的销售情况后,我们发现Excel的Pivot PivotTable和数据透视表具有以下优点:



多维数据的分析只需要一个表来分析数据从多个角度的变化。



通过任何人的拖放,可以创建动态的、摘要视图。



它对非常复杂和繁琐的数据的处理和分析可以帮助我们直观地发现数据变化的趋势和差异。



报表形式丰富(柱状图、折线图)以满足各种需求。



它可以用于数据过滤,进行特定的分析。

Excel和它的数据透视表确实很强大!



这是因为Excel非常强大,所以现在需要它,现在需要使用Javascript在Web端实现相同的功能!(我的一天):



使用Javascript实现



首先,我们使用对象数组定义数据(用于关系数据库,尽管它是有序的,但实际数据是无序的)




var JSON { {
年度:2013,
国家:美国
产品:iPhone 5
销售:8000,
价格:6000
{ }。
年度:2013,
国家:美国
产品:iPhone 6
销售:0,
价格:0
{ }。


} }


或使用键值对




var数据{ {
2013:{
中国:{
iPhone:{
销售:8000,
价格:6000
},
iPhone5:{

}
},
美国:{

}
},
2014:{

}

}


数据透视表



首先,我解决了PivotTable的问题。



根据上面的数据,有两种处理数据聚合的方法(这只是演示,真正的代码要复杂得多)



使用传统的数据遍历的方法。(完成一个排序函数,Array.prototype.sort()的方法是用在这里。)




Data.sort(功能(A,B){
返回a.year > b.year | |
国家b.country | | >
a.product > b.product | |
a.sales > b.sales | |
a.price >船上的交货价;
});


这里按国家排序,如果国家相同,则按产品排序…



然后根据顺序数组(循环遍历,即仅在几年和国家中分类)进行概要计算。




VaR getTotal(){()=功能
var;
对于(var i = 0;i < json.length;i++){
var项目= JSON i };
获取每个国家的总销售额
总{ } = {项目。国家总项目。国家| | { } };
总{项目。国家}。销售=总数。{项目。国家}。
Item.sales:
总{项目。国家销售+ item.sales };

/每个国家在不同年份的总销售额
总计{项目.国家}项目.年度} =总数{项目.国家}项目.年度} =未定义
Item.sales:
{ } {总项目。国家项目。年} + item.sales;
}
var总和= 0;

总销售额
对于(总的var密钥){
总和=总};
}
total.sum =总和;
总收益;
};


这是总结的结果。


现在你可以根据这个数据建立表格了。



使用SQL语句对数据进行排序和收集



数据排序的第二种方法是使用SQL。



陈述完毕




选择*,总数
从数据作为,
从数据组中选择和(销售)作为产品
在a.product = b.product


最后是改进界面,可以通过这种方式完成,并做一个简单的透视图。



但由于项目有很多表,甚至不知道列标题的名称,所以上述方法根本不能使用。



现在,用另一种方法来解决这个问题,这个插件刚刚在Excel IO部分中使用过。



解决wijmo



这是一个演示程序,使用wijmo完成数据透视。



excek IO的基本使用了第一个纯Javascript实现。



数据透视表



首先导入所需的包












然后根据数据实例化一个枢轴面板。








var;
app.pivotpanel =新wijmo.olap.pivotpanel(' # pivot_panel);

这是数据引擎面板吗关联图表将共享一个数据引擎。
VaR NG = app.pivotpanel.engine;
ng.itemssource = app.collectionview;
Ng.rowFields.push(国家','年','产品');
Ng.valueFields.push('sales(单位));
ng.showrowtotals = wijmo.olap.showtotals.subtotals;


下面是这个代码的效果:


基于枢轴配置面板生成表








app.pivotgrid =新wijmo.olap.pivotgrid(' # pivot_grid,{
ItemsSource:app.pivotpanel,
showselectedheaders:' '
});



加滤波器



可以通过右键单击列并选择筛选器来过滤列数据。


枢轴




app.pivotchart =新wijmo.olap.pivotchart(' # pivot_chart,{
ChartType:'column ' / /酒吧
ItemsSource:app.pivotpanel
});




好了,透视表和透视图已经完成了。



这是演示的全部效果。


通过枢纽控制,项目的数据功能也很快完成。

总结



以上是本文的全部内容,希望您能帮助学习或工作,如果您能请您留言的话。