LChart中的折线图在项目中的简单使用

前言

首先感谢作者—linheimx
其项目原理–http://www.jianshu.com/p/d03ff80ad508
其项目github–https://github.com/linheimx/LChart
我当时使用的版本号–com.linheimx.library:lchart:1.1.4

特别感谢作者因为我的一些需求从1.1.0升级到1.1.4(当然,现在已经1.2.2了)

对照需求

首先拿到作者的demo,看基本效果图,如下:
![MV7DXDWZ]W{SV$R8ZT106HA.png](http://upload-images.jianshu.io/upload_images/2728091-71a8e896a6527a5c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

而我要的实际效果接近,但效果图如下:

《LChart中的折线图在项目中的简单使用》 DN}V$5FGCTJ~H2U3CRG@_OA.png

先不用在意我是多折线,塞数据的demo多条折线有提供思路,可以参照

对比

来先看一下对比图,如下:

![(RSLPJV7OPM]LPWHCTZT(QW.png](http://upload-images.jianshu.io/upload_images/2728091-368cfbd05625824b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
大致看出需要8处改动,其实x轴y轴可以视为一处,所对应的数据也可以视为一处
那我们现在就开始改动。

修改

1,2,3的修改,改变y轴单位,数据和颜色,字体大小,精准度,如果不想用单位,可以不用写

demo写法:

 YAxis yAxis = lineChart.get_YAxis();
 yAxis.set_unit("单位:m");
 yAxis.set_ValueAdapter(new DefaultValueAdapter(3));// 默认精度到小数点后2位,现在修改为3位精度

改为

yAxis.set_unit("体重/kg");
yAxis.setUnitColor(color);//文字颜色
yAxis.setAxisColor(color);//轴线颜色
yAxis.set_ValueAdapter(new DefaultValueAdapter(1));//精度到小数点后1位
yAxis.setLabelTextSize(33);//单位字体大小(体重)
yAxis.setLabelColor(color);//单位颜色(体重)

4的修改同理,不做单独说明
5的修改明显不同,做了数据的处理显示

demo代码:
xAxis.set_ValueAdapter(new DefaultValueAdapter(0));
改为作者的自定义方法:

xAxis.set_ValueAdapter(new IValueAdapter() {
            @Override
            public String value2String(double value) {
//                if (value < 0) {
//                    return "";
//                } else
                if (value % 12 == 0) {
                    if (value == 0) {
                        return "出生";
                    }
                    return (int) value / 12 + "岁";
                } else if (value % 12 == 6) {
                    if (value % 12 == 6 && value < 12) {
                        return "半岁";
                    }
                    return (int) value / 12 + "岁半";
                }
                return (int) value + "月";
            }
        });

6,8的改变就是去除点,折线的宽度,颜色

demo代码:

// 高亮
HighLight highLight = lineChart.get_HighLight();
highLight.setEnable(true);// 启用高亮显示  默认为启用状态

修改为:

line.setLineWidth(5);//折线的粗细
line.setDrawCircle(false);//折线是否显示大圆点
line.setLineColor(color);//折线的颜色

7的改变就是,我不想显示轴负值,故让作者暴露了设置约束视图的肥胖因子的方法

lineChart.get_MappingManager().setFatFactor(1.1f);

至此,修改基本完成,剩下的就是显示本地数据和网络数据的问题,demo已经写好,可以直接修改就能用了。

后记

因最近加班超厉害,天天到夜里,周末也没休息,故答应作者的写一篇使用,一直拖到现在,我也只是用到了最基本的折线,所以篇文很少,但是代码都在上面,可以直接看懂,最主要的是作者因为我的一些需求,倒是修改了一些,暴露了一些,可制定的功能多了一些,而且作者的注释写的很详细,感谢作者。

    原文作者:gton
    原文地址: https://www.jianshu.com/p/0d1758657267
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞