В Amcharts 4 ищем решение для отображения скрытых столбцов на гистограммах, где каждая легенда представляет столбец - PullRequest
0 голосов
/ 20 февраля 2020

Есть ли способ скрыть / показать столбцы на гистограмме, нажав на легенды? В частности, когда каждая легенда представляет столбец на гистограмме, как показано в , пример здесь .

Здесь в найдено специальное решение , и это очень хорошее начало. Но это с AmCharts v3 , и я ищу AmCharts v4 с подходом, где -

  • может использовать свойство legend.itemContainers.template.togglable.
  • любой адаптер для реализации через известный API

Спасибо

1 Ответ

0 голосов
/ 24 февраля 2020

( ПРИМЕЧАНИЕ - решение предоставлено zeroin . Я просто цитирую здесь, чтобы быть полезным для тех, кто требует такого поведения в AmCharts 4 )

Вот ссылка с полным решением - https://codepen.io/team/amcharts/pen/bGNyXod

По сути, подписка на события dataitemsvalidated и toggled (на legend.itemContainers ) сделал работу.

Соответствующий фрагмент кода -

series.events.on("dataitemsvalidated", function(){
  var data = [];
  series.dataItems.each(function(dataItem){
    data.push({name:dataItem.categoryX, fill:dataItem.column.fill, dataItem:dataItem});
  })
  legend.data = data;
})

legend.itemContainers.template.events.on("toggled", function(event) {    
  if(event.target.isActive){
    event.target.dataItem.dataContext.dataItem.hide(series.interpolationDuration, 0, 0, ["valueY"]);
  }
  else{
    event.target.dataItem.dataContext.dataItem.show(series.interpolationDuration, 0, ["valueY"]);
  }
})

Надеюсь, это поможет.

...