Android统计图表MPAndroidChart

MPAndroidChart是在Android平台上开源的第三方统计图表库,可以绘制样式复杂、丰富的各种统计图表,如一般常见的折线图、饼状图、柱状图、散点图、金融股票中使用的的“蜡烛”图、“泡泡”统计图、雷达状统计饼状图等等。简言之,AndroidMPChart基本上可以满足日常在Android平台上的统计图表开发需要。 AndroidMPChart在github上的项目主页: https://github.com/PhilJay/MPAndroidChart 在自己的项目的libs中,导入其发布的jar包即可使用MPAndroidChart。MPAndroidChart发布的jar包页面在: https://github.com/PhilJay/MPAndroidChart/releases AndroidMPChart使用方法:在上面的releases页面下载最新的jar包,复制到自己的项目libs中即可使用。如图:

代码如下:

 package com.lixu.zhexian;

 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.components.XAxis.XAxisPosition;
import com.github.mikephil.charting.components.XAxis;
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;
import android.view.Window; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main); LineChart mlinechart = (LineChart) findViewById(R.id.linechart); LineData mLineData = LineData(30);
// 将x轴放到底部 默认在顶部
XAxis mXAxis = mlinechart.getXAxis();
mXAxis.setPosition(XAxisPosition.BOTTOM); setChartStyle(mlinechart, mLineData);
} // 设置显示样式
private void setChartStyle(LineChart mlinechart, LineData mLineData) {
// 是否在折线上添加边框
mlinechart.setDrawBorders(false);
// 数据描述
mlinechart.setDescription("温度记录数据");
// 如果没有数据的时候,会显示这个,类似listview的emtpyview
mlinechart.setNoDataTextDescription("如果传给MPAndroidChart的数据为空,那么你将看到这段文字。");
// 是否绘制背景颜色。
// 如果mLineChart.setDrawGridBackground(false),
// 那么mLineChart.setGridBackgroundColor()将失效;
mlinechart.setDrawGridBackground(true);
// 折线图的背景
mlinechart.setGridBackgroundColor(Color.CYAN);
// 设置触摸
mlinechart.setTouchEnabled(true);
// 设置拖拽
mlinechart.setDragEnabled(true);
// 设置缩放
mlinechart.setScaleEnabled(true);
mlinechart.setPinchZoom(false);
// x y 轴的背景
mlinechart.setBackgroundColor(Color.YELLOW);
// 设置x y轴的数据
mlinechart.setData(mLineData);
// 设置比例图标,就是那一组y的value的
Legend mLegend = mlinechart.getLegend();
mLegend.setPosition(LegendPosition.BELOW_CHART_CENTER);
// 样式
mLegend.setForm(LegendForm.LINE);
// 字体
mLegend.setFormSize(20.0f);
// 下方字体颜色
mLegend.setTextColor(Color.BLUE);
// 设置x轴的动画
mlinechart.animateX(15000); } private LineData LineData(int count) {
ArrayList<String> x = new ArrayList<String>();
// x轴的数据
for (int i = 0; i < count; i++) {
x.add("第" + i + "天");
}
// y轴的数据
ArrayList<Entry> y = new ArrayList<Entry>();
for (int i = 0; i < count; i++) {
float f = (float) (Math.random() * 100);
Entry entry = new Entry(f, i);
y.add(entry);
}
// y轴的数据集
LineDataSet set = new LineDataSet(y, "数据集 --木子");
// 用y轴的集合来设置参数
// 线宽
set.setLineWidth(3.0f);
// 显示圆形大小
set.setCircleSize(5.0f);
// 折线的颜色
set.setColor(Color.BLACK);
// 圆球颜色
set.setCircleColor(Color.RED);
// 设置mLineDataSet.setDrawHighlightIndicators(false)后,
// Highlight的十字交叉的纵横线将不会显示,
// 同时,mLineDataSet.setHighLightColor()失效。 set.setDrawHighlightIndicators(true);
// 点击后,十字交叉线的颜色
set.setHighLightColor(Color.BLUE);
// 设置显示数据点字体大小
set.setValueTextSize(10.0f);
// mLineDataSet.setDrawCircleHole(true); // 改变折线样式,用曲线。
set.setDrawCubic(true);
// 默认是直线
// 曲线的平滑度,值越大越平滑。
set.setCubicIntensity(0.2f); // 填充曲线下方的区域,红色,半透明。
set.setDrawFilled(true);
// 数值越小 透明度越大
set.setFillAlpha(150);
set.setFillColor(Color.RED); // 填充折线上数据点、圆球里面包裹的中心空白处的颜色。
set.setCircleColorHole(Color.YELLOW);
// 设置折线上显示数据的格式。如果不设置,将默认显示float数据格式。
set.setValueFormatter(new ValueFormatter() { @Override
public String getFormattedValue(float value, Entry entry, int dataSetIndex,
ViewPortHandler viewPortHandler) {
int n = (int) value;
String str = n + "℃";
return str;
}
});
ArrayList<LineDataSet> mLineDataSets = new ArrayList<LineDataSet>();
mLineDataSets.add(set); LineData mLineData = new LineData(x, mLineDataSets);
return mLineData; }
}

xml文件:

 <LinearLayout 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:orientation="vertical" > <TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="30sp"
android:text="每日温度记录曲线图"
android:textColor="#ff0000" /> <com.github.mikephil.charting.charts.LineChart
android:id="@+id/linechart"
android:layout_width="match_parent"
android:layout_height="match_parent" /> </LinearLayout>

运行效果图:

Android统计图表MPAndroidChart.的更多相关文章

  1. Android 使用 MPAndroidChart 实现折线图

    Android 使用 MPAndroidChart 实现折线图 做Android项目的时候用到了折线图,不光折线图,还可能遇到很多的图表需要展示渲染,自己手画的话那好玩了,今天使用MPAndroidC ...

  2. 笑谈Android图表-MPAndroidChart

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

  3. android 企业级高性能图表库 SciChart (付费)

    1.官网 https://www.scichart.com/ 2.特性 2.1 链接 https://www.scichart.com/android-chart-features/ https:// ...

  4. 如何在 Swift 语言下使用 iOS Charts API 制作漂亮图表?

    [编者按]本文作者 Joyce Echessa 是渥合数位服务创办人,毕业于台湾大学,近年来专注于协助客户进行 App 软体以及网站开发.文中作者通过示例介绍用 ios-charts 库创建简易美观的 ...

  5. 统计图表--第三方开源--MPAndroidChart(一)

    效果图1: 效果图2: MPAndroidChart是在Android平台上开源的第三方统计图表库,可以绘制样式复杂.丰富的各种统计图表,如一般常见的折线图.饼状图.柱状图.散点图.金融股票中使用的的 ...

  6. Android MPAndroidChart RadarChart (蜘蛛网图)

    最近项目涉及到这个统计图形,经过实现,记录下,防止忘记了. 1.Github地址:MPAndroidChart 官方使用RadarChart demo:RadarChartActivitry 2.使用 ...

  7. Android图表库MPAndroidChart(十四)——在ListView种使用相同的图表

    Android图表库MPAndroidChart(十四)--在ListView种使用相同的图表 各位好久不见,最近挺忙的,所有博客更新的比较少,这里今天说个比较简单的图表,那就是在ListView中使 ...

  8. Android图表库MPAndroidChart(十三)——简约的底部柱状图

    Android图表库MPAndroidChart(十三)--简约的底部柱状图 我们继续上一讲,今天还是说下柱状图,这个图的话应该是用的比较多的,所有拿出来溜溜,先看下效果 我们还是来看下基本实现 一. ...

  9. Android图表库MPAndroidChart(十二)——来点不一样的,正负堆叠条形图

    Android图表库MPAndroidChart(十二)--来点不一样的,正负堆叠条形图 接上篇,今天要说的,和上篇的类似,只是方向是有相反的两面,我们先看下效果 实际上这样就导致了我们的代码是比较类 ...

随机推荐

  1. iOS - OC NSNull 空值

    前言 @interface NSNull : NSObject <NSCopying, NSSecureCoding> 作为占据空间的一个空值,如用在数组或字典中占据一个没有任何值的空间. ...

  2. 百度之星复赛Astar Round3

    拍照 树状数组(SB了).求出静止状态下,每个点能看到多少个向右开的船c1[i],多少个向左开的船c2[i]. max{c1[i] + c2[j], (满足i <= j)  }即为答案.从后往前 ...

  3. poj3565Ants(KM-几何与图论的结合)

    链接 可以看出蓝的之和一定比红的之和要大,也就是说符合条件的匹配一定是权值最小的,所以二分图的最佳完美匹配..KM #include <iostream> #include<cstd ...

  4. hdu4570Multi-bit Trie

    链接 13年长沙邀请赛的题,神题意~ 题意:摘自http://blog.csdn.net/libin56842/article/details/9703457 这题题意确实有点难懂,起码对于我这个英语 ...

  5. asp.net 柱形图

    在vs中,如果要使用柱形图,我们大多数使用第三方提供的插件,所以必须要引用样式,这里我使用的是Highcharts-4.1.9插件,百度一下就可以下载到. 关键的js代码: <script sr ...

  6. PPPOE协议

    PPPOE协议 PPPOE的全称为PPP Over Ethernet,用于实现PPP在以太网上的传输.它要求通信双方是点到点的关系,不适于广播型的以太网和一些多点访问型网络. 一.PPPOE的作用 将 ...

  7. Java Ant build.xml详解

    1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台   --因为 ...

  8. 三大平衡树(Treap + Splay + SBT)总结+模板[转]

    Treap树 核心是 利用随机数的二叉排序树的各种操作复杂度平均为O(lgn) Treap模板: #include <cstdio> #include <cstring> #i ...

  9. 转:如何学习SQL(第一部分:SQL基础)

    转自:http://blog.163.com/mig3719@126/blog/static/285720652010950712271/ 1. 为什么学习SQL 自人类社会形成之日起,社会的运转就在 ...

  10. Linux大文件分割split和合并cat使用方法

    本文主要介绍linux下两个命令:split和cat.其中,相信大家都熟悉cat命令,一般用来查看一个文件的内容,但是它还其它的功能,比如这里要介绍的文件合并功能,它可把多个文件内容合并到一个文件中. ...