【发布时间】:2020-03-17 17:46:24
【问题描述】:
我们有一个圆环图,当在圆环图上单击一个切片时,我们希望更新 ColumnChart 中的值。
这就是我们为圆环图设置监听器的方式
segments.forEach(Consumer { segment: PieSegment ->
segment.addIsSelectedChangeListener {
drawColumnChart(clickedSliceProperties)
}
})
绘制柱状图的方法
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') 返回了多个 ID=DefaultAxisId 的轴。当您在 SciChart 中有多个轴时,请检查您是否分配了正确的轴 ID
感谢您的宝贵时间 :)
【问题讨论】: