Что такое анализ пивота?
Поворотный анализ заключается в суммировании, фильтровании, анализе, сравнении и построении данных в разных измерениях. Используется для обнаружения изменений в данных и различиях, вызванных различными факторами. Это очень полезно в продажах, статистике, финансах и т. Д., И часто используется в некотором программном обеспечении для управления.
Далее я использовал Excel, чтобы представить, что такое анализ поворотных и поворотных таблиц.
Ниже я использую таблицу Pivot от Excel для анализа данных о объеме продаж телефонов iPhone в 2013, 2014 и 2015 годах в Китае и Соединенных Штатах, чтобы суммировать тенденции продаж телефонов iPhone.
Заявление: Все данные составлены самим и не имеют справочной стоимости.
Excel поворотные таблицы и диаграммы поворота
Это объем продаж телефонов iPhone в Китае и Соединенных Штатах в 2013, 2014, 2015.
---- Чтобы обнаружить изменения в различных продажах мобильных телефонов в каждой стране в 2013, 2014, 2015, необходимо вставить таблицу поворота и настроена данные. Здесь, если вы добавите поля в строки, они будут классифицированы по рядам. (Сначала по стране, затем год и продукт);
Получите таблицу Pivot в соответствии с конфигурацией
Благодаря таблице поворота легко увидеть общий объем продаж в Китае и общий объем продаж в Соединенных Штатах.
Схема поворота
Согласно этой таблице, видно, что в последние годы продажи iPhone в Китае резко упали.
---- Чтобы наблюдать различия в продажах между Китаем и Соединенными Штатами, вам нужно только настроить панель данных следующим образом. (Категория по продукту и стране)
Поворот
Схема поворота
Можно обнаружить, что с 2014 года продажи iPhone в Китае стали ниже, чем в Соединенных Штатах, и разница между его ценой и Соединенными Штатами стала меньше и меньше.
Благодаря вышеуказанному анализу продаж iPhone с использованием таблиц Excel Pivot, мы обнаружили, что стержни Pivot Tables Excel имеют следующие преимущества:
Анализируя данные из нескольких измерений, необходима только одна таблица для анализа изменений данных с разных сторон.
Перетаскивая и сбрасывая каждый, кто может создать динамические, сводные представления.
Он обрабатывает и анализирует очень сложные и громоздкие данные, которые могут помочь нам интуитивно обнаружить тенденции и различия в изменениях данных.
Существует множество отчетов (барные диаграммы, линейные диаграммы), удовлетворяющие различные потребности.
Он может выполнять фильтрацию данных для определенного конкретного анализа.
Хорошо, Excel и его поворотные столы настолько сильны!
Это именно потому, что Excel настолько мощный, что требования сейчас здесь, и JavaScript теперь необходим для реализации тех же функций на веб -стороне! (Боже мой-) :)
Реализация с использованием JavaScript
Во -первых, используйте массив объектов для определения данных (используется для реляционной базы данных. Хотя он здесь упорядочен, реальные данные неупопорядочен)
var json = [{«Год»: 2013, «страна»: «США», «Продукт»: «iPhone 5», «Продажи»: 8000, «цена»: 6000}, {«Год»: 2013, «Страна»: «США», «Продукт»: «iPhone 6», «Продажи»: 0, «цена»: 0}, {...}]]Или используйте пары ключевых значений
var Data = {"2013": {"China": {"iPhone": {"Sales": 8000, "цена": 6000}, "iPhone5": {...}}, "USA": {...}}, "2014": {...} ...}Поворот
Во -первых, сначала я решу проблему стержных таблиц.
Согласно вышеуказанным данным, существует два способа обработки сводки данных (вот лишь демонстрация, реальный код будет намного сложнее)
Используйте регулярные методы обхода данных. (Чтобы завершить функцию сортировки, используйте метод Array.prototype.sort() здесь.)
data.sort (function (a, b) {return a.year> b.year || a.country> b.country || a.product> b.product || a.sales> b.sales || a.price> b.price;});Здесь мы сначала сортируем по стране. Если страна такая же, то сортируйте по продукту ...
Затем суммируйте и рассчитайте на основе сортированного массива (Trupersal, здесь он только что классифицируется по году и стране)
var getTotal = function () {var total = {}; for (var i = 0; i <json.length; i ++) {var item = json [i]; // Получить общий объем продаж каждой страны общего числа [item.country] = total [item.country] || {}; Total [item.country] .sales = total [item.country] .sales == не определен? item.sales: total [item.country] .sales + item.sales; // Общий объем продаж каждой страны в разные годы Общая сумма [item.country] [item.year] = total [item.country] [item.year] == не определен? item.sales: total [item.country] [item.year] + item.sales; } var sum = 0; // Общие продажи для (var key в общей сложности) {sum += total [key] .sales; } total.sum = sum; return Total;};Это краткий результат
Хорошо, теперь вы можете сделать таблицу на основе этих данных (я не буду подробностей здесь).
Используйте операторы SQL для сортировки и суммирования данных
Второй метод для сортировки и суммирования данных - использовать SQL.
Только одно предложение
Выберите *, Итого из данных как a, выберите Sum (Sales) из группы данных по продукту как B, где A.product = b.product
Наконец, интерфейс улучшен. Этот метод может достичь аналогичных эффектов. Простая поворотная таблица считается завершенной.
Однако, поскольку этот проект имеет много таблиц и даже не знает названия заголовка столбца, приведенный выше метод вообще не может использоваться.
Теперь, в другом способе решения этой проблемы, этот плагин использовался в части Excel IO.
Решено через Wijmo
Вот демонстрация, которая использует Wijmo для завершения pivot.
Его основное использование было введено в первой реализации чистого JavaScript Excek IO.
Поворот
Сначала импортируйте необходимые пакеты
<script src = "./ lib/wijmo/wijmo.min.js"> </script> <script src = "./ lib/wijmo/wijmo.input.min.js"> </script> <script src = "./ lib/wijmo/wijmo. src = "./ lib/wijmo/wijmo.grid.filter.min.js"> </script> <script src = "./ lib/wijmo/wijmo.chart.min.js"> </script> <script src = "./ wijmo/wijmo.ol.
Затем создайте экземпляру панели поворота на основе данных
<div id = "pivot_panel"> </div>
var app = {}; app.pivotpanel = new wijmo.olap.pivotpanel ('#pivot_panel'); // Двигатель - это двигатель данных этой панели, и связанные с ними диаграммы поделится двигателем данных. var ng = app.pivotpanel.engine; ng.itemssource = app.collectionview; ng.rowfields.push ('country', 'year', 'product'); ng.valuefields.push ('sales);Вот эффект этого кода:
Создать таблицы на основе панели конфигурации Pivot
<div id = "pivot_grid"> </div>
app.pivotgrid = new wijmo.olap.pivotgrid ('#pivot_grid', {itemssource: app.pivotpanel, showselectedheaders: 'all'});Добавить фильтр
Данные столбца фильтра, щелкнув правой кнопкой мыши по столбцу и выбрав фильтр.
Схема поворота
app.pivothart = new wijmo.olap.pivothart ('#pivot_chart', {charttype: 'column', // bar itemssource: app.pivotpanel});Хорошо, поворот таблица и перспектива сделаны.
Это полный эффект демонстрации.
Благодаря управлению Pivot функция данных этого проекта также завершается быстро.
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения.