菜鸡学习之路之------MPAndroidChart 一个开源图表库

一、MPAndroidChart 是什么?

MPAndroidChart 是 Android 一个强大且容易使用的图表库

  • 支持线状图、柱状图、散点图、烛状图、气泡图、饼状图和蜘蛛网状图
  • 支持缩放、拖动(平移)、选择和动画
  • 适用于 Android 2.2 ( API 8 ) 和以上

该图标库支持 跨平台 使用:Android 和 iOS

二、MPAndroidChart 有哪些特性?

  • 8种不同的图表类型  
  • 两轴缩放(支持触摸手势,两轴单独或同时的放缩) 
  • 拖 / 平移 / 抛(触摸手势)  
  • Combined-Charts 组合图表(线状、柱状、散点图等)   
  • 双轴(比如说有两个独立的Y轴数据)  
  • 画值 (draw values into the chart with touch-gesture)
  • 高亮显示值(我们可以自定义Popup-views来高亮显示我们选中的值) 
  • 多个 / 单独的轴  
  • 图保存到sd卡(图像或txt文件)  
  • 预定义的颜色模板  
  • Legends (自动生成,自定义)   
  • 自定义轴(x轴和y轴)   
  • 动画(建立x和y轴动画)
  • 限制线(比如提供附加信息、最大值 …)   
  • 完全自定义(paints、字体、legends、颜色、背景、手势、虚线 …)   

  • 平滑缩放和滚动 30.000 数据点(线状,柱状图表)
  • 代码学习
  • <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
        android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
    
        <com.github.mikephil.charting.charts.LineChart
            android:id="@+id/chart"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </RelativeLayout>

  • package org.gsc.zz.Demo;
    
    import android.graphics.Color;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    import com.github.mikephil.charting.charts.LineChart;
    import com.github.mikephil.charting.components.XAxis;
    import com.github.mikephil.charting.components.YAxis;
    import com.github.mikephil.charting.data.Entry;
    import com.github.mikephil.charting.data.LineData;
    import com.github.mikephil.charting.data.LineDataSet;
    import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
        private LineChart lc;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
           initchart();
        }
    
        private void  initchart() {
            lc= (LineChart) findViewById(R.id.chart);
            lc.animateX(5000);//设置动画
            lc.animateY(5000);
            XAxis xa=lc.getXAxis();//控制X轴位置,默认顶部XAxis.XAxisPosition.TOP
            xa.setPosition(XAxis.XAxisPosition.BOTTOM);
            xa.setDrawGridLines(false);//默认绘制网格
            xa.setDrawAxisLine(true);//默认绘制X        xa.setDrawLabels(false);//绘制x轴标签
            xa.setDrawLimitLinesBehindData(true);//设置基准线
            YAxis ya=lc.getAxisRight();
            ya.setDrawAxisLine(false);//去掉右边y宙线
            ya.setDrawLabels(false);
            List<String> x=new ArrayList<>();//x轴的名称
            x.add("第一次月考");
            x.add("第二次月考");
            x.add("第三次月考");
            x.add("第四次月考");
            x.add("第五次月考");
            List l=new ArrayList();
            LineDataSet l1=new LineDataSet(l,"数学成绩");//y轴数据
            //设置线的颜色如不设置默认绿色
            l1.setColor(Color.YELLOW);
             Entry e=new Entry(100.0f,0);//数据实体类
           l.add(e);
            e=new Entry(55.0f,2);
           l.add(e);
            e=new Entry(70.0f,3);
           l.add(e);
            e=new Entry(60.0f,1);
            l.add(e);
            e=new Entry(150.0f,4);
            l.add(e);
            List<ILineDataSet> sumy= new ArrayList<>();//装载所有y轴的数据集合,集合的长度决定显示几条直线
            sumy.add(l1);
            lc.setData(new LineData(x, sumy));
            lc.invalidate();
            lc.setLogEnabled(true);
            //-keep class com.github.mikephil.charting.** { *; } 混淆脚本
        }
    }
    

  • 许多图用法类似雷同,举一反三

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江南一舟110

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

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

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

打赏作者

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

抵扣说明:

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

余额充值