Android图表控件MPAndroidChart——BarChart实现多列柱状图以及堆积柱状图

本文介绍了如何使用MPAndroidChart库在Android中创建柱状图,包括数据准备、柱状图展示、外观完善、多条柱状图的实现以及触摸事件的响应。详细讲解了从数据获取到自定义图表外观的每个步骤,并提供了相关代码示例。
摘要由CSDN通过智能技术生成

目录

前言

1. 数据准备

1.1 数据来源

2. 图表展示

2.1 MPAndroidChart获取

2.2 数据对象获取

2.3 数据展示

3. 柱状图外观完善

3.1 去掉图表外框,描述内容以及X Y轴线条

3.2 修改X Y轴网格线

3.3 X Y轴自定义显示值

3.4 柱状图显示不完整问题解决

3.5 单条柱状图宽度

4. 多条柱状图

4.1 多条柱状图展示

4.2 由堆积柱状图变为并排多列柱状图

5. BarChart触摸事件

5.1 柱状图点击事件响应

5.2 禁用图表触摸事件

6. 最终效果图


前言

发现最新的MPAndroidChart和以前版本的使用有一些差距,就写下了现在新版的使用方法

注:博客2018/08/24更新 使用的MPAndroidChart版本3.0.3

相关文章:

Android图表控件MPAndroidChart的简单介绍(MPAndroidChart3.0)

Android图表控件MPAndroidChart——曲线图LineChart的使用(多条曲线)

Android图表控件MPAndroidChart——曲线图LineChart(多条曲线)动态添加数据

Android图表控件MPAndroidChart——柱状图BarChart的使用(多条柱状图)

Android图表控件MPAndroidChart——曲线图+柱状图 CombinedChart的使用 

Android图表控件MPAndroidChart——源码修改实现曲线图X轴直尺刻度样式

本文相关代码

MPAndroidChart在github上地址:GitHub - PhilJay/MPAndroidChart: A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.

目标效果图为中兴通讯的净资产收益率:

1. 数据准备

1.1 数据来源

数据是抓包佣金宝的数据,将获取的数据存入.json文件。

json格式如下

Json 文件地址:

https://github.com/897532167/ChartManager/blob/master/app/src/main/assets/line_chart.json

2. 图表展示

2.1 MPAndroidChart获取

Github 地址:GitHub - PhilJay/MPAndroidChart: A powerful 🚀 Android chart view / graph view library, supporting line- bar- pie- radar- bubble- and candlestick charts as well as scaling, panning and animations.

依赖:

Project 的build.gradle文件中添加

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

然后在 module中的build,gradle 中添加

dependencies {
    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
}

然而大多情况下,我们会根据自己的需求自定义MPAndroidChart库,则需要下载源码并将MPChartLib引入自己的项目中。

2.2 数据对象获取

在Android Studio app项目src同级目录下新建中新建assets文件夹,然后将步骤1.1得到的.json文件放入改文件夹中。

然后在获取.json文件中的json字符串并解析为对应的数据对象,可参考以下文章

相关文章:Android访问assets本地Json文件

在此就不详叙述了,只是列出图表展示所需要的类

        /**
         * 公司净资产收益率
         */
        public static class VtDateValueBean {
            /**
             * fValue : -21.7467
             * sYearMonth : 2018-03
             */

            private double fValue;
            private String sYearMonth;
        }

        /**
         * 行业平均值
         */
        public static class VtDateValueAvgBean {
            /**
             * fValue : 7.50136
             * sYearMonth : 2016-12
             */

            private double fValue;
            private String sYearMonth;
        }

2.3 数据展示

2.3.1  BarChart 的使用流程

使用流程如下

  • 得到BarChart对象 并初始化
  • 得到BarEntry对象,此处添加(X,Y)值
  • 得到BarDataSet对象,添加BarEntry对象
  • 得到BarData对象,添加BarDaraSet对象
  • 显示柱状图 BarChart.setData(BarData)

2.3.2  BarChart 的初始化设置

BarChart与折线图LineChart很类似,基本会使用到如下属性

    private BarChart barChart;
评论 50
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值