У нас есть кольцевая диаграмма, и при щелчке фрагмента на кольцевой диаграмме мы хотели бы обновить значения в ColumnChart.
Вот так мы устанавливаем слушателя для кольцевой диаграммы
segments.forEach(Consumer { segment: PieSegment ->
segment.addIsSelectedChangeListener {
drawColumnChart(clickedSliceProperties)
}
})
Метод, который dr aws ColumnChart
private fun drawColumnChart(values: Array<Int>) {
val xAxis: IAxis = sciChartBuilder.newNumericAxis().withGrowBy(0.15, 0.15).withLabelProvider(YearsLabelProvider()).build()
val yAxis: IAxis = sciChartBuilder.newNumericAxis().withGrowBy(0.0, 0.0).build()
xAxis.autoRange = AutoRange.Always
yAxis.autoRange = AutoRange.Always
val dataSeries: IXyDataSeries<Int, Int> = sciChartBuilder.newXyDataSeries(Int::class.javaObjectType, Int::class.javaObjectType).build()
for (i in values.indices) {
dataSeries.append(i, values[i])
}
val rSeries = sciChartBuilder.newColumnSeries()
.withStrokeStyle(-0xdcdcdd, 0.4f)
.withDataPointWidth(0.5)
.withDataSeries(dataSeries)
.withPaletteProvider(ColumnsPaletteProvider())
.build()
UpdateSuspender.using(lineChart) {
lineChart.theme = R.style.SciChart_Bright_Spark
Collections.addAll(lineChart.xAxes, xAxis)
Collections.addAll(lineChart.yAxes, yAxis)
Collections.addAll(lineChart.renderableSeries, rSeries)
Collections.addAll(lineChart.chartModifiers, sciChartBuilder.newModifierGroupWithDefaultModifiers().build())
sciChartBuilder.newAnimator(rSeries).withWaveTransformation().withInterpolator(DecelerateInterpolator()).withDuration(3000).withStartDelay(350).start()
}
}
Попытка передать другой набор значения для метода drawColumnChart (), это исключение выдается.
java .lang.UnsupportedOperationException: AxisCollection.getAxisById ('DefaultAxisId') вернул более одной оси с идентификатором = DefaultAxisId. Убедитесь, что вы присвоили правильные идентификаторы осей, если у вас есть несколько осей в SciChart
Спасибо за ваше время:)