android 统计图表MPAndroidChart

AndroidMPChart在github上的项目主页: https://github.com/PhilJay/MPAndroidChart 
在自己的项目的libs中,导入其发布的jar包即可使用MPAndroidChart。MPAndroidChart发布的jar包页面在:https://github.com/PhilJay/MPAndroidChart/releases 
AndroidMPChart使用方法:在上面的releases页面下载最新的jar包,复制到自己的项目libs中即可使用。如图:

现在,先做一个基础的AndroidMPChart折线图,折线图在平时的统计图表中应用最多,AndroidMPChart提供了丰富的功能给予支持。

效果图如下:

现给出实现上述统计图表的全部代码。

MainActivity.java的代码:

package com.example.mpandroidchart;import java.util.ArrayList;import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.Legend.LegendForm;
import com.github.mikephil.charting.components.Legend.LegendPosition;
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.formatter.ValueFormatter;
import com.github.mikephil.charting.utils.ViewPortHandler;import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);LineChart chart = (LineChart) findViewById(R.id.chart);//制作7个数据点(沿X坐标)LineData mLineData = makeLineData(7);setChartStyle(chart,mLineData,Color.WHITE);}//设置chart显示的样式private void setChartStyle(LineChart mLineChart, LineData lineData, int color) {//是否在折线图上添加边框mLineChart.setDrawBorders(true);mLineChart.setDescription("描述@Rokends");//如果没有数据达到时候,会显示这个,类似listview的emtpyviewmLineChart.setNoDataTextDescription("如果传给MPAndroidChart的数据为空,那么你将看见这段文字!");// 是否绘制背景颜色。  // 如果mLineChart.setDrawGridBackground(false),  // 那么mLineChart.setGridBackgroundColor(Color.CYAN)将失效;  mLineChart.setDrawGridBackground(true);  mLineChart.setGridBackgroundColor(Color.CYAN); //触摸mLineChart.setTouchEnabled(true);//拖拽mLineChart.setDragEnabled(true);//缩放mLineChart.setScaleEnabled(true);mLineChart.setPinchZoom(false);//设置背景mLineChart.setBackgroundColor(color);//设置x,y轴的数据mLineChart.setData(lineData);//设置比例图标示,就是那一个组y的value值Legend mLegend = mLineChart.getLegend();mLegend.setPosition(LegendPosition.BELOW_CHART_CENTER);mLegend.setForm(LegendForm.CIRCLE);//样式mLegend.setFormSize(15.0f);//字体mLegend.setTextColor(Color.BLACK);//颜色//沿X轴动画,时间2000毫秒mLineChart.animateX(2000); }private LineData makeLineData(int count) {ArrayList<String> x = new ArrayList<String>();for(int i=0;i<count;i++){//x轴数据x.add("X="+i);}// y轴的数据  ArrayList<Entry> y = new ArrayList<Entry>();  for (int i = 0; i < count; i++) {  float val = (float) (Math.random() * 50);  Entry entry = new Entry(val, i);  y.add(entry);  }//y轴数据集LineDataSet mLineDataSet = new LineDataSet(y,"测试数据集@Rokends");// 用y轴的集合来设置参数  // 线宽  mLineDataSet.setLineWidth(3.0f); // 显示的圆形大小  mLineDataSet.setCircleSize(5.0f);// 折线的颜色  mLineDataSet.setColor(Color.RED);  // 圆球的颜色  mLineDataSet.setCircleColor(Color.YELLOW);// 设置mLineDataSet.setDrawHighlightIndicators(false)后,  // Highlight的十字交叉的纵横线将不会显示,  // 同时,mLineDataSet.setHighLightColor(Color.CYAN)失效。  mLineDataSet.setDrawHighlightIndicators(true);  // 按击后,十字交叉线的颜色  mLineDataSet.setHighLightColor(Color.CYAN);// 设置这项上显示的数据点的字体大小。  mLineDataSet.setValueTextSize(15.0f);  // mLineDataSet.setDrawCircleHole(true); // 改变折线样式,用曲线。  // mLineDataSet.setDrawCubic(true);  // 默认是直线  // 曲线的平滑度,值越大越平滑。  // mLineDataSet.setCubicIntensity(0.2f);  // 填充曲线下方的区域,红色,半透明。  // mLineDataSet.setDrawFilled(true);  // mLineDataSet.setFillAlpha(128);  // mLineDataSet.setFillColor(Color.RED);  // 填充折线上数据点、圆球里面包裹的中心空白处的颜色。  mLineDataSet.setCircleColorHole(Color.BLACK);  // 设置折线上显示数据的格式。如果不设置,将默认显示float数据格式。 mLineDataSet.setValueFormatter(new ValueFormatter() {@Overridepublic String getFormattedValue(float value, Entry entry, int dataSetIndex,ViewPortHandler viewPortHandler) {int j = (int) value;String s = "y="+j;return s;            }});  ArrayList<LineDataSet> mLineDataSets = new ArrayList<LineDataSet>();mLineDataSets.add(mLineDataSet);LineData mLineData = new LineData(x,mLineDataSets);return mLineData;}
}

MainActivity.java需要的activity_main.xml :

[html] view plaincopy
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent" >
  5. <com.github.mikephil.charting.charts.LineChart
  6. android:id="@+id/chart"
  7. android:layout_width="match_parent"
  8. android:layout_height="match_parent" />
  9. </RelativeLayout>

MPAndroidChart提供了丰富的参数设计条件,可以设计样式丰富统计图表,比如在本例中,如果把注释掉的这段代码重新启用:

[java] view plaincopy
  1. // 改变折线样式,用曲线。
  2. // mLineDataSet.setDrawCubic(true);
  3. // 默认是直线
  4. // 曲线的平滑度,值越大越平滑。
  5. // mLineDataSet.setCubicIntensity(0.2f);
  6. // 填充曲线下方的区域,红色,半透明。
  7. // mLineDataSet.setDrawFilled(true);
  8. // mLineDataSet.setFillAlpha(128);
  9. // mLineDataSet.setFillColor(Color.RED);

那么折线图的样式就变成这样:

android 统计图表MPAndroidChart相关推荐

  1. android 多数据图表,Android统计图表MPAndroidChart:为多条统计折线动态更新数据,以高温低温曲线为例【7】...

     Android统计图表MPAndroidChart:为多条统计折线动态更新数据,以高温低温曲线为例[7] 本文在附录文章6的基础上,为Android统计图表MPAndroidChart的同一个L ...

  2. 笑谈Android图表-MPAndroidChart

    MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非常灵活.MPA ...

  3. Android中MPAndroidChart图表工具的常用方法(汇总)

    本篇主要是MPAndroidChart图表工具常用方法的汇总,其他不清楚的可以去GitHub上的文档查询. 强大的图表绘制工具,支持折线图.面积图.散点图.时间图.柱状图.条图.饼图.气泡图.圆环图. ...

  4. Android使用MPAndroidChart画折线图

    MPAndroidChart GitHub地址https://github.com/PhilJay/MPAndroidChart 一个强大的Android图表视图/图形视图库,支持直线-条形-饼-雷达 ...

  5. Android'图表MPAndroidchart 的BarChart

    如何给图表设置数据 /*         设置数据         设置数据一共需要五个步骤         Step1: 设置 List*/ //使用BarEntry         List< ...

  6. piechart 文档 android,Android MPAndroidChart之PieChart和数据结构以及模型【5】

    Android MPAndroidChart之PieChart和数据结构以及模型[5] 以MPAndroidChart的饼状图PieChart为例. 测试的MainActivity的Java代码: p ...

  7. MpAndroidChart-LineChart 折线图使用(含动态添加点,动态添加曲线)

    目录 零.简介 一.MpAndroidChart的基本使用 1.依赖:project的build.gradle 中添加 2.app的build.gradle 中添加 3.举例 4.常用API 二.Mp ...

  8. java android统计图_Android统计图表之柱状图(条形图)

     Android统计图表之柱状图(条形图) 柱状图是统计图表中经常用到的一种图表,比如降雨量之类的统计展示.我之前写了一些关于Android上的统计图表库MPAndroidChart,附录了一些我 ...

  9. Android开源项目分类整理

    Android开源项目分类整理 字数1492 分类整理平时收集的项目,便于查找. Android 架构 Mosby A Model-View-Presenter library for modern ...

  10. Android探索之旅(第十四篇)Android中实现炫酷效果的Demo(持续收录中......)

    RangeSeekBar Android简单实现订单模块类APP的物流详情页 Android开发中阴影效果的实现 Android 炫酷多重水波纹 MultiWaveHeader 利用Spannable ...

最新文章

  1. php导出excel列数太多,php生成excel列名,超过26列大于Z问题解决办法
  2. boost::hana::partial用法的测试程序
  3. 局域网连接SQL Server数据库配置
  4. android动画影子效果,Android TV常用动画的效果,View选中变大且有阴影(手机也能用)...
  5. 【内容管理系统】之 Strapi
  6. 用java实现学生管理系统
  7. Django ORM 常用的查询方法
  8. Python Flask教程
  9. window python环境搭建_Python入门-环境搭建详解(Window平台)
  10. Hadoop在运行几个T数据量时报堆内存溢出
  11. 射频微电子学_专注于射频前端芯片,苏州汉天下完成新一轮融资
  12. 遥感数字图像处理复习(朱文泉)
  13. win7安装mysql后“应用程序无法启动因为应用程序的并行配置不正
  14. 如何下载微信视频号的视频?教你三种方法,一分钟轻松解决
  15. 使用ML.NET实现健康码识别
  16. 怎样去掉Using default security password:2A70F900-4445-4113-9749-2E7EE44C1EB1。
  17. PEANUT-WF模块开发-HslCommunicationEx
  18. 开源项目之Android 向下刷新列表
  19. 消息队列MQ常见面试题
  20. 三国杀服务器改名 插图修改,三国杀7年前老版灵雎焚心到底多恶心?换身份让官方被迫修改...

热门文章

  1. hdu6287(分解质因数+二分)
  2. 计算机wifi共享,win7 wifi共享,教您Win7如何设置wifi共享
  3. Liang-Barskey算法以及代码实现
  4. linux mbr转换成gpt分区格式,GPT分区格式与MBR格式互相转换的方法
  5. 爬虫笔记——urllib实战之淘宝零食板块爬取
  6. python哈希类型_Python散列类型和运算符
  7. java excel添加批注
  8. [Matlab] 单次测量的中误差、算数平均值的中误差、加权求最或然值、函数拟合、莫迪图的计算实例
  9. 汇编指令:CLD STD MOVS LODS STOS
  10. 数电(二)—分析/画逻辑电路图