amCharts 4:是否可以通过总计对堆积柱形图的类别进行排序

时间:2020-08-02 13:35:37

标签: amcharts amcharts4

是否可以按总数对具有多个堆叠序列的类别柱形图的类别进行排序?

我知道CategoryAxis具有属性sortBySeries,但这仅允许按一个特定系列进行排序。 所有系列都具有等同功能吗?还是诸如创建不可见的总系列之类的解决方法?

(对我来说,对数据进行预排序不是最佳选择,因为以后我想使用chart.invalidateRawData,然后也必须对数据进行排序。)

1 个答案:

答案 0 :(得分:0)

我最终得到的当前解决方案是以编程方式向_calcTotal中的每个对象添加一个chart.data属性。 该属性的值是通过将所有value-dataattributes的所有值相加得出的。
例如当单个数据项看起来像这样:

{
  country: 'Germany',
  femaleVisitors: 2550,
  maleVisitors: 6029
}

,并为maleVisitorsfemaleVisitors创建了两个堆叠的序列,然后更新的数据项将如下所示:

{
  country: 'Germany',
  femaleVisitors: 2550,
  maleVisitors: 6029,
  _calcTotal: 8579
}

例如,当beforedatavalidated事件开始时以及每次您更新数据时,都可以执行此计算。 然后,我们使用_calcTotal作为值数据字段创建一个新的列系列,并将该系列的hidden属性设置为true

此系列现在可以通过使用categoryAxis.sortBySeries属性进行排序。

但是,当隐藏所引用的排序系列并且使用很多不同类别(>〜15)时,amcharts最初不会对类别进行排序。 一种解决方法是在图表触发ready事件时调用invalidateRawData。这样会导致初始排序动画变脏,但是,总比没有好。

JSFiddle:https://jsfiddle.net/0nr3g6es/1/

相关问题