Qu'est-ce que l'analyse Pivot?
L'analyse des pivots consiste à résumer, filtrer, analyser, comparer et tracer les données dans différentes dimensions. Utilisé pour découvrir des changements dans les données et les différences causées par différents facteurs. Ceci est très utile dans les ventes, les statistiques, les finances, etc., et est souvent utilisé dans certains logiciels de gestion.
Ensuite, j'ai utilisé Excel pour introduire ce que sont les tables d'analyse et de pivot de pivot.
Ci-dessous, j'utilise le tableau des pivots d'Excel pour analyser les données du volume des ventes des téléphones iPhone en 2013, 2014 et 2015 en Chine et aux États-Unis pour résumer les tendances de vente des téléphones iPhone.
Déclaration: Toutes les données sont constituées par soi-même et n'ont aucune valeur de référence.
Excel Pivot Tables et Pivot Diagrams
Il s'agit du volume des ventes des téléphones iPhone en Chine et aux États-Unis en 2013, 2014, 2015.
---- Afin de découvrir des changements dans différentes ventes de téléphones portables dans chaque pays en 2013, 2014, 2015, un tableau pivot doit être inséré et les données sont configurées. Ici, si vous ajoutez des champs aux lignes, ils seront classés par les lignes. (D'abord par pays, puis l'année et le produit);
Obtenez la table de pivot en fonction de la configuration
Grâce à la table PIVOT, il est facile de voir le volume total des ventes en Chine et le volume total des ventes aux États-Unis.
Diagramme de pivot
Selon ce tableau, on peut voir que ces dernières années, les ventes d'iPhone en Chine ont fortement baissé.
---- Afin d'observer les différences de vente entre la Chine et les États-Unis, vous n'avez qu'à configurer le panneau de données comme suit. (Catégorie par produit et pays)
Table de pivot
Diagramme de pivot
On peut constater que depuis 2014, les ventes d'iPhone en Chine ont commencé à être inférieures à celles des États-Unis, et la différence entre son prix et les États-Unis est devenue de plus en plus petite.
Grâce à l'analyse ci-dessus des ventes d'iPhone à l'aide de tables de pivot Excel, nous avons constaté que les tables et les tableaux de pivot de pivot d'Excel au pivot d'Excel ont les avantages suivants:
En analysant les données à partir de plusieurs dimensions, un seul tableau est nécessaire pour analyser les changements de données sous plusieurs angles.
En faisant glisser et en abandonnant, n'importe qui peut créer des vues dynamiques et résumées.
Il traite et analyse des données très complexes et lourdes, ce qui peut nous aider à découvrir intuitivement les tendances et les différences dans les changements de données.
Il existe une grande variété de rapports (graphiques à barres, graphiques de ligne), répondant à une variété de besoins.
Il peut effectuer un filtrage de données pour certaines analyses spécifiques.
Ok, Excel et ses tables de pivot sont si puissantes!
C'est précisément parce qu'Excel est si puissant que les exigences sont maintenant là, et JavaScript est maintenant nécessaire pour implémenter les mêmes fonctions du côté Web! (Mon Dieu-) :)
Implémentation à l'aide de JavaScript
Tout d'abord, utilisez un tableau d'objets pour définir les données (utilisées pour une base de données relationnelle. Bien qu'elles soient commandées ici, les données réelles ne sont pas ordonnées)
var JSON = [{"Year": 2013, "Country": "USA", "Product": "iPhone 5", "Sales": 8000, "Price": 6000}, {"Year": 2013, "Country": "USA", "Product": "iPhone 6", "Sales": 0, "Price": 0}, {...}]]Ou utilisez des paires de valeurs clés
var data = {"2013": {"China": {"iPhone": {"Sales": 8000, "Price": 6000}, "iPhone5": {...}}, "USA": {...}}, "2014": {...} ...}Table de pivot
Tout d'abord, je résoudre d'abord le problème des tables de pivot.
Selon les données ci-dessus, il existe deux façons de traiter le résumé des données (voici juste une démo, le code réel sera beaucoup plus compliqué)
Utilisez des méthodes de traversée de données régulières. (Pour remplir une fonction de tri, utilisez ici Array.prototype.sort() .)
data.sort (fonction (a, b) {return a.year> b.year || a.Country> B.Country || a.product> b.product || a.sales> b.sales || a.price> b.price;});Ici, nous trions d'abord par pays. Si le pays est le même, trier par produit ...
Puis résumer et calculer en fonction du tableau trié (traversée de boucle, ici, il est juste classé par année et par pays)
var getTotal = function () {var total = {}; pour (var i = 0; i <json.length; i ++) {var item = json [i]; // obtient le volume des ventes totales de chaque pays total [item.country] = total [item.country] || {}; Total [item.country] .sales = total [item.country] .sales == Undefined? item.sales: total [item.country] .sales + item.sales; // Volume total des ventes de chaque pays en différentes années total [item.country] [item.year] = total [item.country] [item.year] == Undefined? item.sales: total [item.country] [item.year] + item.sales; } var sum = 0; // Ventes totales pour (clés var au total) {sum + = total [clé] .sales; } total.sum = sum; retour total;};C'est le résultat résumé
D'accord, vous pouvez maintenant faire un tableau en fonction de ces données (je n'entrerai pas dans les détails ici).
Utilisez des instructions SQL pour le tri et le résumé des données
La deuxième méthode pour trier et résumer les données consiste à utiliser SQL.
Juste une phrase
Sélectionnez *, total parmi les données en tant que A, sélectionnez Sum (ventes) From Data Group par produit comme B où a.product = B.Product
Enfin, l'interface est améliorée. Cette méthode peut obtenir des effets similaires. Une table pivot simple est considérée comme complète.
Cependant, comme ce projet a de nombreuses tables et ne connaît même pas le nom du titre de la colonne, la méthode ci-dessus ne peut pas être utilisée du tout.
Maintenant, d'une autre manière de résoudre ce problème, ce plug-in a été utilisé dans la partie Excel IO.
Résolu via wijmo
Voici une démo qui utilise Wijmo pour terminer le pivot.
Son utilisation de base a été introduite dans la première implémentation JavaScript pure d'EXCEK IO.
Table de pivot
Importez d'abord les packages requis
<script src = "./ lib / wijmo / wijmo.min.js"> </ script> <script src = "./ lib / wijmo / wijmo.input.min.js"> </ script> <script src = "./ lib / wijmo / wijmo.gry.min.min.js"> </ script> src = "./ lib / wijmo / wijmo.grid.filter.min.js"> </ script> <script src = "./ lib / wijmo / wijmo.chart.min.js"> </ script> <script src = "./ / wijmo / wijmo.olap.min.
Puis instancier un panneau de pivot basé sur les données
<div id = "pivot_panel"> </ div>
var app = {}; app.pivotpanel = new wijmo.olap.pivotpanel ('# pivot_panel'); // le moteur est le moteur de données de ce panneau, et les graphiques associés partageront un moteur de données. var ng = app.pivotpanel.engine; ng.itemssource = app.collectionView; ng.rowfields.push ('country', 'année', 'product'); ng.valuefields.push ('sales (table)'); ng.subtoTals = wijmo.olap.showtotals.subtoals = wijmo.olap.showtotals.subtoals = wijmo.olap.showtotals.subtoSals = wijmo.olap.showtotals.subtoals = wijmo.olap.showtotals.subtoals = wijmo.olap.showtotals.Voici l'effet de ce code:
Générer des tables basées sur le panneau de configuration du pivot
<div id = "pivot_grid"> </ div>
app.pivotgrid = new wijmo.olap.pivotgrid ('# pivot_grid', {itelessource: app.pivotpanel, showselectedheders: 'all'});Ajouter le filtre
Filtre les données de la colonne en cliquant avec le bouton droit sur la colonne et en sélectionnant le filtre.
Diagramme de pivot
app.pivotchart = new wijmo.olap.pivotchart ('# pivot_chart', {chartType: 'colonne', // bar itelessource: app.pivotpanel});Ok, la table et la perspective de pivot sont terminées.
C'est l'effet complet de la démo.
Grâce au contrôle du pivot, la fonction de données de ce projet est également terminée rapidement.
Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que cela sera utile à l'étude ou au travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer.