Android Studio Kotlin使用AndroidPlot时X轴不按整数X值缩放问题
AndroidPlot X轴(domain域)缩放异常解决方案
问题根源
你创建SimpleXYSeries时使用了Y_VALS_ONLY模式,该模式下AndroidPlot会自动将数据索引(0、1、2、3...)作为X轴的原始值,你后续通过自定义Format做的只是显示层的数值映射,并不会改变AndroidPlot内部的缩放、刻度计算逻辑,所以才会出现X轴缩放不符合预期的问题。

修复步骤
- 第一步:修正XYSeries的构造逻辑,直接传入X、Y数值对,替换原来的Y_VALS_ONLY模式
val aa1= arrayOf<Number>(20,20,40,40) val adom= arrayOf<Number>(60,120,120,580) // 直接传入X值列表和Y值列表,不需要再做索引映射 val series1 : XYSeries = SimpleXYSeries(Arrays.asList(*adom), Arrays.asList(*aa1), "aa1") val series1Format = LineAndPointFormatter(Color.BLUE,null,null,null) plot.addSeries(series1,series1Format)
- 第二步:删除原来自定义的底部标签Format,直接配置X轴显示格式为整数即可
plot.graph.getLineLabelStyle(XYGraphWidget.Edge.BOTTOM).format = NumberFormat.getIntegerInstance()
- 第三步:可选配置,强制X轴按指定规则生成刻度,避免出现非整数刻度
// 方式1:按固定步长生成刻度,比如每100单位一个刻度 plot.domainStep = Step(StepMode.INCREMENT_BY_VAL, 100.0) // 方式2:固定X轴的显示范围,避免自动缩放超出你需要的区间 plot.setDomainBoundaries(60, 580, BoundaryMode.FIXED)
内容的提问来源于stack exchange,提问作者user30878
相关产品推荐
相关产品推荐

