Android MPAndroidChart之柱状图BarChart

**APP为了能让用户对数据有更直观,更便捷的认识,我们通常都选择了以图表的方式展示给用户,如折线图、饼图、条形图等…今天和大家分享下MPAndroidChart,一个强大便捷的图标控件。

Android MPAndroidChart之饼图PieChart

Android MPAndroidChart之折线图LineChart

本篇我们分享下饼状图BarChart的使用**

>>>>先贴张效果图<<<<

在这里插入图片描述

第一步,添加依赖

 //曲线图  饼状图 折线图
    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

第二步,添加布局

  <com.github.mikephil.charting.charts.BarChart
            android:id="@+id/barChart"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center" />

第三步设置属性

 fun getDate(): Map<String, List<BarEntry>> {
        //造了两条数据
        val list: MutableList<BarEntry> = ArrayList()
        list.add(BarEntry(1F,10F))
        list.add(BarEntry(2F,60F))
        list.add(BarEntry(3F,30F))
        list.add(BarEntry(4F,80F))
        list.add(BarEntry(5F,40F))
       // list.add(BarEntry("".toFloat(),10F))
       // list.add(BarEntry("".toFloat(),10F))
       // list.add(BarEntry("".toFloat(),10F))
        val map: HashMap<String, List<BarEntry>> = HashMap()
        map["map"] = list
       // map["girl"] = list1
        return map
    }

    private fun showBarChart(
        map: Map<String, List<BarEntry>>,
        barChart: BarChart
    ) {
        //装载男女生数据
        val barDataSet = BarDataSet(map["map"], "增长率")
        barDataSet.color = Color.rgb(199, 255, 140)
      //  val barDataSet1 = BarDataSet(map["girl"], "非金属")
       // barDataSet1.color = Color.rgb(255, 240, 157)

        //载入数据集
        val barData = BarData()
        barData.addDataSet(barDataSet)
       // barData.addDataSet(barDataSet1)
        // barData.barWidth = 20F;
        barChart.data = barData

        //可以用它来设置图的大小显示
        // barChart.setExtraOffsets(15F, 80F, 20F, 45F)

        //右下角标识描述,需要可以打开
        val description = Description()
        description.text = "柱状图"
        description.isEnabled = false
        barChart.description = description
        //打开缩放交互
        barChart.setScaleEnabled(false)
        //关闭网格线水平网格线
        barChart.axisLeft.setDrawGridLines(true)
        barChart.xAxis.setDrawGridLines(false)
        //关闭坐标纵轴
        // barChart.axisLeft.isEnabled = false
        //关闭右边纵轴
        //barChart.getAxisRight().setEnabled(false)
        //是否显示竖直标尺线
        barChart.setTouchEnabled(false); // 设置是否可以触摸
        barChart.xAxis.labelRotationAngle = 330F;//设置横坐标倾斜角度
        //将x轴设置在下方
        val xAxis: XAxis = barChart.xAxis
        xAxis.position = XAxis.XAxisPosition.BOTTOM

        date.add("2021/01/08")
        date.add("2021/01/09")
        date.add("2021/01/10")
        date.add("2021/01/11")
        date.add("2021/01/12")
        //xAxis.axisMinimum = 0f
        xAxis.labelCount = date.size

        //设置X轴坐标自定义数据格式
        xAxis.valueFormatter = object : IndexAxisValueFormatter() {
            override fun getFormattedValue(value: Float): String {
                val index = value.toInt()-1
                return if (index < 0 || index >= date.size) {
                    "1"
                } else {
                    date[index]
                }

            }
        }

        //设置y轴右边不显示
        val yAxis: YAxis = barChart.axisRight
        yAxis.isEnabled = false
        val yy: YAxis = barChart.axisLeft
       // yy.axisMinimum = 0f
        //yy.axisMaximum = 10f
        // yy.labelCount = 10
    }

第四步,调用函数

  showBarChart(getDate(), barChart)
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 MPAndroidChart 绘制横向圆角柱状图的步骤如下: 1. 在你的项目中添加 MPAndroidChart 的依赖。 2. 在 XML 布局文件中添加一个 BarChart 控件。 3. 在代码中获取 BarChart 控件的实例,并进行一些基础设置,如设置 X 轴和 Y 轴的属性。 4. 创建一个 BarDataSet 对象,并设置数据。 5. 创建一个 BarData 对象,并将 BarDataSet 对象添加到 BarData 对象中。 6. 设置 BarData 对象到 BarChart 控件中,并进行一些样式设置,如设置柱状图的颜色、边框宽度等。 7. 最后调用 BarChart 控件的 invalidate() 方法刷新界面即可。 下面是一个示例代码,可以绘制横向圆角柱状图: ```java // 获取 BarChart 控件实例 BarChart barChart = findViewById(R.id.bar_chart); // 设置 X 轴和 Y 轴属性 barChart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM); barChart.getXAxis().setDrawGridLines(false); barChart.getAxisLeft().setDrawGridLines(false); barChart.getAxisRight().setDrawGridLines(false); // 创建 BarDataSet 对象并设置数据 List<BarEntry> entries = new ArrayList<>(); entries.add(new BarEntry(0f, 5f)); entries.add(new BarEntry(1f, 6f)); entries.add(new BarEntry(2f, 7f)); entries.add(new BarEntry(3f, 8f)); entries.add(new BarEntry(4f, 9f)); BarDataSet dataSet = new BarDataSet(entries, "数据"); // 创建 BarData 对象并将 BarDataSet 添加到其中 BarData data = new BarData(dataSet); // 设置 BarData 到 BarChart 控件中 barChart.setData(data); // 设置柱状图的颜色、边框宽度等 dataSet.setColors(Color.parseColor("#3F51B5")); dataSet.setDrawValues(false); dataSet.setBarBorderWidth(1f); dataSet.setBarBorderColor(Color.parseColor("#3F51B5")); dataSet.setBarBorderRadius(20f); // 刷新界面 barChart.invalidate(); ``` 在上面的示例代码中,我们设置了一个数据集合,包含了 5 个柱状图的数据(横坐标分别是 0 到 4),并设置了柱状图的样式,最后调用 invalidate() 方法刷新界面即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值