关于安卓MPAnroidChart开发(一)直方图分组坑

背景

安卓开发一个图表显示数据,内容就是对直方图进行分组显示,大概示例如下:
在这里插入图片描述

开发环境

win10,as4+,jdk8+

开发

这里直接说重点。乱七八糟的就掠过了,最后会放出所有相关源码以及封装好的类。

如果对单组的直方图,只需要设置

                chart.xAxis.granularity = 1f

即可坐标对齐,放大缩小都可以完美适应。

但是,如果对于分组的直方图,那就要做一下的适配了
                chart.xAxis.axisMinimum = 0f
                chart.xAxis.granularity = 1f
                chart.xAxis.axisMaximum =
                    (chart.barData.getGroupWidth(groupSpace, barSpace) * dataSize)
                chart.xAxis.setCenterAxisLabels(true)
                chart.groupBars(0f, groupSpace, barSpace)

其中:barSpace 是直方图之间的距离,groupSpace是分组的距离,这有个公式,就是(barwidth+barSpace) * groupSize + groupSpace = 1
这个公式,必定要记住,不然会出现,分组以后的数据,放大后坐标乱七八糟,这种坑,百度一搜一个没有,最后是看别人的demo发现的。

这个坑足足浪费了两个小时!!!!

第二,如果所直方图要做成单组和分组共用,那么就要进行特殊的适配,核心代码如下:

            if (singleData) {
                chart.xAxis.setCenterAxisLabels(false)
                chart.xAxis.resetAxisMaximum()
                chart.xAxis.resetAxisMinimum()
                chart.xAxis.granularity = 1f
            } else {
                chart.xAxis.axisMinimum = 0f
                chart.xAxis.granularity = 1f
                chart.xAxis.axisMaximum =
                    (chart.barData.getGroupWidth(groupSpace, barSpace) * dataSize)
                chart.xAxis.setCenterAxisLabels(true)
                chart.groupBars(0f, groupSpace, barSpace)
            }

可以看到,如果是单组数据,是需要重置某些变量的。

上述就是全部相关的数据,最后放出完整的demo链接:
链接:https://pan.baidu.com/s/1Snyjo-kr_VoLMnXx4E5RRw
提取码:i8q9
在这里插入图片描述
that’s all----------------------------------------------------------------------------

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值