MPAndroidChart 3.1.0 折线图使用

本文详细介绍了如何在Android应用中使用MPAndroidChart库创建和定制折线图,包括导入依赖、设置图表元素如图例、轴和数据点,以及自定义样式和标签。
摘要由CSDN通过智能技术生成

导入依赖库

 //数学图表
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

xml使用

          <com.github.mikephil.charting.charts.LineChart
                android:id="@+id/lineChart"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

代码

fun initLineChart(){
        binding.lineChart.description.isEnabled = false  //关闭描述
        binding.lineChart.legend.isEnabled = false  //关闭图例
        binding.lineChart.getAxisRight().setEnabled(false) //关闭右侧Y轴
        binding.lineChart.getAxisLeft().setEnabled(false) //关闭左侧Y轴
        // 禁用双指缩放
        binding.lineChart.setPinchZoom(false)
        //禁用缩放按钮
        binding.lineChart.setScaleEnabled(false)
        // 禁止双击放大
        binding.lineChart.setDoubleTapToZoomEnabled(false)
        //每个方向的内边距
        binding.lineChart.setExtraOffsets(0f,0f,0f,10f);


        val dataList = thisMonthEveryDayFlowList  //其实就是一个float列表,存储的是每个节点的值

        // 在 MPAndroidChart 一般都是通过 List<Entry> 对象来装数据的
        val entries = ArrayList<Entry>()
        val colorList = ArrayList<Int>()
        // 循环取出数据
        for (i in dataList.indices) {
            entries.add(Entry(i.toFloat(), dataList[i]))
            if (i == dataList.size-1){
                colorList.add(ContextCompat.getColor(requireContext(), R.color.color_FF5C00))
            }else{
                colorList.add(Color.TRANSPARENT)
            }
        }

        //X轴
        val xAxis = binding.lineChart.xAxis
        xAxis.axisLineColor = resources.getColor(R.color.color_4E4E4E)
        xAxis.axisLineWidth = 4f
        xAxis.textSize = 14f // 设置字体大小
        xAxis.textColor = resources.getColor(R.color.white) // 设置字体颜色
        xAxis.position = XAxis.XAxisPosition.BOTTOM // 将 x 轴位于底部
        xAxis.setDrawGridLines(false) // 不绘制网格线
        xAxis.axisMaximum = dataList.size.toFloat()
        xAxis.setGranularity(1f)
        xAxis.axisMinimum = 1f

        // 一个 LineDataSet 对象就是一条曲线
        val lineDataSet = LineDataSet(entries, "第一条数据")
        lineDataSet.lineWidth = 2f
        lineDataSet.setColor(Color.WHITE);//设置折线的颜色,有三个构造方法
        lineDataSet.setDrawFilled(false)//是否绘制折线下方的填充
        lineDataSet.valueFormatter = object : ValueFormatter() {
            override fun getPointLabel(entry: Entry): String {
                // 只对最后一个点显示标签
                if (entry.x == (dataList.size - 1).toFloat()) {
                    return  "${entry.y}MB"
                }
                return ""
            }
        }

        lineDataSet.setValueTextSize(14f) // 设置文本大小为12
        lineDataSet.setValueTextColor(ContextCompat.getColor(requireContext(),R.color.color_FF5C00)) // 设置文本颜色

        // 设置数据集的画圆形样式
        lineDataSet.setDrawCircles(true)  //绘制折线节点出的圆点
        lineDataSet.setDrawCircleHole(false) //关闭节点圆点中心的空洞
        lineDataSet.circleRadius = 6f

        // 设置数据集的圆形颜色
        lineDataSet.circleColors = colorList

        // LineData 才是真正给 LineChart 的数据
        val lineData = LineData(lineDataSet)
        binding.lineChart.data = lineData
        binding.lineChart.invalidate()

    }

 详细学习:

安卓图形之MPAndroidChart3.0详解一——折线图_mpandroidchart 折线图-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小趴菜8227

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值