Как отобразить только ограниченное количество записей в блоке графика d c. js - PullRequest
1 голос
/ 08 февраля 2020

Я хочу показать последние 10 корзин для ящика.

Если к столбчатой ​​диаграмме или линейной диаграмме применяется фильтр, на блок-графике должны отображаться последние 10 записей в соответствии с этими фильтрами.

Я сделал измерение по дате (порядковый номер). Но я не могу получить результат.

Я не понял, как это сделать с фальшивой группой. Я новичок в д c. js.

Пи c сценария прилагается. Дайте мне знать, если кому-то понадобится более подробная информация, чтобы помочь мне.

image в изображении я попробовал какое-то решение по шкале времени.

1 Ответ

1 голос
/ 12 февраля 2020

Вы можете сделать это с двумя поддельными группами, одна для удаления пустых графиков ячеек, а другая для получения последних N элементов полученных данных.

Удаление пустых графиков ячеек:

  function remove_empty_array_bins(group) {
    return {
      all: function() {
        return group.all().filter(d => d.value.length);
      }
    };
  }

Это просто фильтрует ячейки, удаляя все, где массив .value имеет длину 0.

Принимая последние N элементов:

  function cap_group(group, N) {
    return {
      all: function() {
        var all = group.all();
        return all.slice(all.length - N);
      }
    };
  }

По сути, это то, что cap смешивает делает, кроме как без создания корзины для «других» (что несколько сложно).

Мы извлекаем данные из исходной группы, смотрим, сколько это времени, а затем нарезаем этот массив от all.length - N до конца.

Цепочка этих подделок вместе при передаче их на график:

  chart
    .group(cap_group(remove_empty_array_bins(closeGroup), 5))

Я использую 5 вместо 10, потому что у меня есть набор данных меньшего размера для работы.

screenshot

Демонстрационная скрипка .

В этом примере используется «реальный» масштаб времени, а не порядковые даты. Есть несколько способов сделать порядковые даты, но если ваша группа все еще отсортирована от низких до высоких дат, это все равно должно работать.

Если нет, вам придется отредактировать свой вопрос, чтобы включить пример код, который вы используете для генерации порядковой группы дат.

...