O que é análise pivô?
A análise do pivô é resumir, filtrar, analisar, comparar e plotar dados em diferentes dimensões. Usado para descobrir mudanças nos dados e diferenças causadas por diferentes fatores. Isso é muito útil em vendas, estatísticas, finanças, etc., e é frequentemente usado em algum software de gerenciamento.
Em seguida, usei o Excel para introduzir o que são as tabelas de análise pivô e pivô.
Abaixo, uso a tabela pivô do Excel para analisar os dados do volume de vendas dos telefones para iPhone em 2013, 2014 e 2015 na China e nos Estados Unidos para resumir as tendências de vendas dos telefones para iPhone.
Declaração: Todos os dados são constituídos por si mesmo e não têm valor de referência.
Excel Tables e diagramas de pivô
Este é o volume de vendas de telefones para iPhone na China e nos Estados Unidos em 2013, 2014, 2015.
---- Para descobrir alterações em diferentes vendas de telefones celulares em cada país em 2013, 2014, 2015, uma tabela dinâmica precisa ser inserida e os dados estão configurados. Aqui, se você adicionar campos às linhas, eles serão classificados por linhas. (Primeiro por país, depois ano e produto);
Obtenha a tabela de pivô de acordo com a configuração
Através da tabela dinâmica, é fácil ver o volume total de vendas na China e o volume total de vendas nos Estados Unidos.
Diagrama de pivô
De acordo com este gráfico, pode -se observar que, nos últimos anos, as vendas de iPhone na China caíram acentuadamente.
---- Para observar as diferenças de vendas entre a China e os Estados Unidos, você só precisa configurar o painel de dados da seguinte forma. (Categoria por produto e país)
Tabela de articulação
Diagrama de pivô
Pode -se descobrir que, desde 2014, as vendas de iPhone na China começaram a ser inferiores às dos Estados Unidos, e a diferença entre seu preço e os Estados Unidos se tornou cada vez menor e menor.
Através da análise acima das vendas de iPhone usando tabelas de pivô do Excel, descobrimos que as tabelas de articulação pivô do Excel e os gráficos de articulação têm os seguintes benefícios:
Analisando dados de várias dimensões, apenas uma tabela é necessária para analisar as alterações nos dados de vários ângulos.
Ao arrastar e soltar qualquer um, pode criar visualizações dinâmicas e resumidas.
Ele processa e analisa dados muito complexos e pesados, que podem nos ajudar a descobrir intuitivamente as tendências e diferenças nas alterações de dados.
Há uma grande variedade de relatórios (gráficos de barras, gráficos de linha), atendendo a uma variedade de necessidades.
Ele pode executar a filtragem de dados para determinada análise específica.
Ok, o Excel e suas mesas de articulação são tão poderosas!
É precisamente porque o Excel é tão poderoso que os requisitos já estão aqui, e o JavaScript agora é necessário para implementar as mesmas funções no lado da web! (Meu Deus-) :)
Implementação usando JavaScript
Primeiro, use uma matriz de objetos para definir os dados (usados para um banco de dados relacional. Embora seja ordenado aqui, os dados reais não são ordenados)
var json = [{"ano": 2013, "country": "EUA", "Product": "iPhone 5", "Sales": 8000, "Price": 6000}, {"ano": 2013, "país": "EUA", "Produto": "iPhone 6", "Sales": 0, "Preço": 0}, {}, {... ... ...Ou use pares de valor-chave
var dados = {"2013": {"China": {"iPhone": {"Sales": 8000, "Price": 6000}, "iPhone5": {...}}, "EUA": {...}}, "2014": {...} ...}Tabela de articulação
Primeiro, resolverei o problema das tabelas de articulação primeiro.
De acordo com os dados acima, há duas maneiras de processar o resumo dos dados (aqui está apenas uma demonstração, o código real será muito mais complicado)
Use métodos de travessia de dados regulares. (Para concluir uma função de classificação, use Array.prototype.sort() aqui.)
data.sort (função (a, b) {return A.Year> b.Year || a.Country> B.Country || A.Product> B.Product || A.Sales> B.Sales || A.Price> B.Price;});Aqui, primeiro nós classificamos por país. Se o país for o mesmo, classifique por produto ...
Em seguida, resuma e calcule com base na matriz classificada (travessal de loop, aqui é apenas classificado por ano e país)
var getTotal = function () {var total = {}; for (var i = 0; i <json.length; i ++) {var item = json [i]; // Obtenha o volume total de vendas de cada país total [item.country] = total [item.country] || {}; total [item.country] .Sales = total [item.country] .Sales == indefinido? Item.Sales: Total [Item.country] .Sales + Item.sales; // Volume total de vendas de cada país em diferentes anos Total [Item.country] [Item.year] = Total [Item.country] [Item.year] == indefinido? Item.Sales: Total [Item.country] [Item.Year] + Item.sales; } var sum = 0; // Total de vendas para (var chave no total) {sum += total [key] .sales; } total.sum = soma; retornar total;};Este é o resultado resumido
Ok, agora você pode fazer uma tabela com base nesses dados (não vou entrar em detalhes aqui).
Use instruções SQL para classificação de dados e resumo
O segundo método para classificar e resumir dados é usar o SQL.
Apenas uma frase
Selecione *, total dos dados como A, selecione Sum (vendas) do grupo de dados por produto como B onde A.Product = B.Product
Finalmente, a interface é melhorada. Este método pode obter efeitos semelhantes. Uma tabela de pivô simples é considerada completa.
No entanto, como este projeto possui muitas tabelas e nem sabe o nome do título da coluna, o método acima não pode ser usado.
Agora, de outra maneira para resolver esse problema, esse plug-in foi usado na parte do Excel IO.
Resolvido via Wijmo
Aqui está uma demonstração que usa o Wijmo para completar o pivô.
Seu uso básico foi introduzido na primeira implementação pura de JavaScript da Excek IO.
Tabela de articulação
Primeiro importe os pacotes necessários
<script src = "./ lib/wijmo/wijmo.min.js"> </script> <script src = "./ lib/wijmo/wijmo.input.min.js"> </cript> <script src = "./ lib/wijmo/wijmo.grid.min.js"> </sCript> <script src = "./ lib/wijmo/wijmo.grid.filter.min.js"> </script> <script src = "./ lib/wijmo/wijmo.chart.min.js"> </sCript> <script src = "./ lib/wijmo/wijmo.olap.min.js"> </script>
Em seguida, instancie um painel pivô com base nos dados
<div id = "pivot_panel"> </div>
var app = {}; app.pivotPanel = new wijmo.olap.pivotPanel ('#pivot_panel'); // mecanismo é o mecanismo de dados deste painel e os gráficos associados compartilharão um mecanismo de dados. var ng = app.pivotPanel.engine; ng.itemSSource = App.CollectionView; ng.rowfields.push ('country', 'ano', 'produto'); ng.valuefields.push ('vendas (tabela)); ng.showrowTotals = wijmo.olap.olap (' Sales ''); ng.showrowTotals = wijmo.olap.olap.olap.olap ('Tabela);Aqui está o efeito deste código:
Gere tabelas com base no painel de configuração do pivô
<div id = "pivot_grid"> </div>
App.pivotGrid = new wijmo.olap.pivotGrid ('#pivot_grid', {itensSource: App.pivotPanel, ShowSelectedHeaders: 'All'});Adicione o filtro
Filtre os dados da coluna clicando com o botão direito do mouse na coluna e selecionando o filtro.
Diagrama de pivô
app.pivotchart = new wijmo.olap.pivotchart ('#pivot_chart', {ChartType: 'colun', // bar itensSource: app.pivotPanel});Ok, a tabela e a perspectiva do dinâmico são feitas.
Este é o efeito completo da demonstração.
Através do controle do pivô, a função de dados deste projeto também é concluída rapidamente.
Resumir
O acima é o conteúdo inteiro deste artigo. Espero que seja útil para estudar ou trabalhar de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar.