美文网首页
MPAndroidChart—Linechart使用(自定义X轴

MPAndroidChart—Linechart使用(自定义X轴

作者: xixi哈哈笑笑 | 来源:发表于2020-04-29 11:51 被阅读0次
效果图
private fun initChart() {
    val values = ArrayList<Entry>()
    values.add(Entry(0f, 5f))
    values.add(Entry(1f, 5.3f))
    values.add(Entry(2f, 5.5f))
    values.add(Entry(3f, 5.7f))
    values.add(Entry(4f, 5.2f))

    // 创建一个数据集,并给它一个类型
    val set1 = LineDataSet(values, "")

    // 在这里设置线
    set1.color = Color.parseColor("#4FE2EF")    // 线条颜色
    set1.lineWidth = 2f // 线条宽度
    set1.setCircleColor(Color.parseColor("#4FE2EF"))    // 圆点颜色
    set1.circleRadius = 3f // 圆点大小
    set1.setDrawCircleHole(false)   // 设置没有圆孔
    set1.setDrawFilled(true)    // 显示线条下部分颜色
    set1.fillDrawable = resources.getDrawable(R.drawable.bg_gradient_ff7ff4ff_007ff4ff) // 设置线条下部分渐变图片
    set1.valueTextColor = Color.parseColor("#4FE2EF")   // 数值颜色
    set1.mode = LineDataSet.Mode.CUBIC_BEZIER  // 显示曲线
    set1.valueFormatter = object : ValueFormatter() {
        override fun getFormattedValue(value: Float): String {
            return DecimalFormat("0.00").format(value.toDouble())   // 数值保留2位小数
        }
    }

    // x轴
    val xAxis = view.linechart.xAxis
    xAxis.position = XAxis.XAxisPosition.BOTTOM // x轴底部显示
    xAxis.isEnabled = true
    xAxis.setDrawGridLines(false)   // 隐藏x轴线条
    xAxis.textColor = Color.parseColor("#8FC7CC")   // x轴字体颜色
    xAxis.axisLineColor = Color.TRANSPARENT // 底部x轴透明色
    xAxis.labelCount = 4    // x轴显示4段
    xAxis.granularity = 1f   // 让x轴上自定义的值和折线上相对应
    // x轴数值
    val quarterStrs = ArrayList<String>()
    quarterStrs.add("09:00")
    quarterStrs.add("11:00")
    quarterStrs.add("13:00")
    quarterStrs.add("15:00")
    quarterStrs.add("17:00")
    xAxis.valueFormatter = object : ValueFormatter() {
        override fun getAxisLabel(value: Float, axis: AxisBase?): String {
            return quarterStrs[value.toInt() % quarterStrs.size]    // 显示x轴数值
        }
    }
    // 左边y轴
    val leftAxis = view.linechart.axisLeft
    leftAxis.axisMinimum = 4.8f     // y轴最小值
    leftAxis.axisMaximum = 6.2f     // y轴最大值
    leftAxis.enableGridDashedLine(5f, 5f, 0f) // y轴虚线
    leftAxis.textColor = Color.parseColor("#8FC7CC")    // y轴字体颜色
    leftAxis.axisLineColor = Color.TRANSPARENT  // y轴边线颜色透明
    leftAxis.gridColor = Color.parseColor("#335566")    // y轴颜色
    leftAxis.labelCount = 4    // y轴显示4段
    leftAxis.valueFormatter = object : ValueFormatter() {
        override fun getAxisLabel(value: Float, axis: AxisBase?): String {
            return DecimalFormat("0.00").format(value.toDouble())   // 数值保留2位小数
        }
    }
    view.linechart.axisRight.isEnabled = false  // 隐藏右边y轴

    val dataSets = ArrayList<ILineDataSet>()
    dataSets.add(set1)
    val data = LineData(dataSets)
    view.linechart.data = data
    view.linechart.legend.isEnabled = false // 隐藏左下角说明
    view.linechart.setTouchEnabled(false)   // 设置图表不可点击
    view.linechart.animateY(500)    // 显示动画
}

···

相关文章

网友评论

      本文标题:MPAndroidChart—Linechart使用(自定义X轴

      本文链接:https://www.haomeiwen.com/subject/lpjgwhtx.html