当y轴值较小时,烛台不能很好地显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当y轴值较小时,烛台不能很好地显示相关的知识,希望对你有一定的参考价值。

我在我的android应用程序上使用SciChart来显示烛台图表。当y值很大时,图表会很好地显示数据。

When the y-values is big, the chart display well.

但是当y值很小时,图表显示不好。它具有默认的比例级别。您可以在底部看到值(红色/绿色点),非常接近y = 0的行

enter image description here

即使我试图提高缩放级别,它似乎也有缩放级别的限制。

enter image description here

任何人都可以给我一些想法来解决这个问题。

贝娄是我目前的实施

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())
    }

谢谢

答案

我尝试了很多解决方案,最后,它通过添加它来工作

    yAxis.minimalZoomConstrain = 0.00000001
    yAxis.maximumZoomConstrain = 1000000
另一答案

您是否尝试过使用AutoRange.Always作为yAxis?

val yAxis = sciChartBuilder.newNumericAxis().withAutoRangeMode(AutoRange.Always).build()

它应该强制yAxis在每次绘制图表时应用自动量程以适应屏幕上的数据。

披露:我是SciChart Android团队的首席开发人员

以上是关于当y轴值较小时,烛台不能很好地显示的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib:如何在 x 轴值中显示完整的每小时日期值?

当 sleep() 不能很好地与警报一起工作时,我还能做啥“睡眠”?

DASH 实时烛台图表在实时更新时消失但仍保留指标

Echarts笔记-折线图定制(Y轴百分数,鼠标移动显示百分数,显示X轴,Y轴值)

JQuery 和 SoundManger 不能很好地播放

以百万英镑显示 Y 轴值的最佳方式