我在我的Android应用程序上使用SciChart来显示烛台图表。当y值很大时,图表会很好地显示数据。
但是当y值很小时,图表显示效果不佳。它具有默认的比例级别。您可以在底部看到值(红色/绿色点),非常接近y = 0
行即使我尝试增加缩放级别,它似乎也有缩放级别的限制。
任何人都可以帮我解决这个问题。
贝娄是我目前的实施
private fun getOhlcDataSeries(symbolValues: List<SymbolValue>):
OhlcDataSeries<Date, Double> {
val dataSeries = OhlcDataSeries(Date::class.java, Double::class.javaObjectType)
val dates = symbolValues.map { it.timePeriodStart }
val opens = symbolValues.map { it.priceOpen }
val high = symbolValues.map { it.priceHigh }
val lows = symbolValues.map { it.priceLow }
val closes = symbolValues.map { it.priceClose }
dataSeries.append(dates, opens, high, lows, closes)
return dataSeries
}
val sciChartBuilder = SciChartBuilder.instance()
val priceSeries = getData()
val xAxis = sciChartBuilder.newCategoryDateAxis().build()
val yAxis = sciChartBuilder.newNumericAxis().build()
val dataSeries = getOhlcDataSeries(priceSeries)
val upColor = 0xFF64AA6F.toInt()
val downColor = 0xFFE25C5A.toInt()
val rSeries = sciChartBuilder.newCandlestickSeries()
.withStrokeUp(upColor)
.withFillUpColor(upColor)
.withStrokeDown(downColor)
.withFillDownColor(downColor)
.withDataSeries(dataSeries)
.build()
UpdateSuspender.using(surface) {
Collections.addAll(surface.xAxes, xAxis)
Collections.addAll(surface.yAxes, yAxis)
Collections.addAll(surface.renderableSeries, rSeries)
Collections.addAll(surface.chartModifiers, sciChartBuilder.newModifierGroupWithDefaultModifiers().build())
}
谢谢
答案 0 :(得分:1)
我尝试了很多解决方案,最后,通过添加此
来实现 yAxis.minimalZoomConstrain = 0.00000001
yAxis.maximumZoomConstrain = 1000000
答案 1 :(得分:0)
您是否尝试将AutoRange.Always用于yAxis?
val yAxis = sciChartBuilder.newNumericAxis().withAutoRangeMode(AutoRange.Always).build()
每次绘制图表时,它都应强制yAxis应用自动量程以适应屏幕上的数据。
披露:我是SciChart Android团队的首席开发人员