Android统计图表MPAndroidChart.
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.的更多相关文章
- Android 使用 MPAndroidChart 实现折线图
Android 使用 MPAndroidChart 实现折线图 做Android项目的时候用到了折线图,不光折线图,还可能遇到很多的图表需要展示渲染,自己手画的话那好玩了,今天使用MPAndroidC ...
- 笑谈Android图表-MPAndroidChart
MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非常灵活.MPA ...
- android 企业级高性能图表库 SciChart (付费)
1.官网 https://www.scichart.com/ 2.特性 2.1 链接 https://www.scichart.com/android-chart-features/ https:// ...
- 如何在 Swift 语言下使用 iOS Charts API 制作漂亮图表?
[编者按]本文作者 Joyce Echessa 是渥合数位服务创办人,毕业于台湾大学,近年来专注于协助客户进行 App 软体以及网站开发.文中作者通过示例介绍用 ios-charts 库创建简易美观的 ...
- 统计图表--第三方开源--MPAndroidChart(一)
效果图1: 效果图2: MPAndroidChart是在Android平台上开源的第三方统计图表库,可以绘制样式复杂.丰富的各种统计图表,如一般常见的折线图.饼状图.柱状图.散点图.金融股票中使用的的 ...
- Android MPAndroidChart RadarChart (蜘蛛网图)
最近项目涉及到这个统计图形,经过实现,记录下,防止忘记了. 1.Github地址:MPAndroidChart 官方使用RadarChart demo:RadarChartActivitry 2.使用 ...
- Android图表库MPAndroidChart(十四)——在ListView种使用相同的图表
Android图表库MPAndroidChart(十四)--在ListView种使用相同的图表 各位好久不见,最近挺忙的,所有博客更新的比较少,这里今天说个比较简单的图表,那就是在ListView中使 ...
- Android图表库MPAndroidChart(十三)——简约的底部柱状图
Android图表库MPAndroidChart(十三)--简约的底部柱状图 我们继续上一讲,今天还是说下柱状图,这个图的话应该是用的比较多的,所有拿出来溜溜,先看下效果 我们还是来看下基本实现 一. ...
- Android图表库MPAndroidChart(十二)——来点不一样的,正负堆叠条形图
Android图表库MPAndroidChart(十二)--来点不一样的,正负堆叠条形图 接上篇,今天要说的,和上篇的类似,只是方向是有相反的两面,我们先看下效果 实际上这样就导致了我们的代码是比较类 ...
随机推荐
- apecceosummit2016
https://www.apecceosummit2016.com/program.html Thursday 17 November 2016 9:00am - 9:00pm REGISTRATIO ...
- 关于Spring定时任务(定时器)用法
Spring定时任务的几种实现 Spring定时任务的几种实现 一.分类 从实现的技术上来分类,目前主要有三种技术(或者说有三种产品): 从作业类的继承方式来讲,可以分为两类: 从任务调度的触发时机来 ...
- Android 让输入框输入指定字符的办法
让输入框输入指定字符的办法 有一个需求 让输入密码的时候只能输入数字字母可见字符 不能输入中文 之前还以为要写代码 还来发现有一个属性可以直接实现 <EditText android:layou ...
- laravel captcha
https://packagist.org/packages/gregwar/captcha
- Memcached使用入门
转:http://www.linuxidc.com/Linux/2011-12/49516.htm http://blog.csdn.net/wxwzy738/article/details/2370 ...
- 转:c++内存分配
第一篇: http://my.oschina.net/pollybl1255/blog/140323 BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS ...
- 网站QQ导航
<a href="http://wpa.qq.com/msgrd?v=3&uin=[color=Red]361983679[/color]&site=qq&me ...
- JavaScript 同名方法的处理
在JS中,如果存在同名同参的方法,它会先调用哪一个?先看两个例子: 例1: <html> <head> <title></title> <scri ...
- 深入理解JVM虚拟机-7虚拟机类加载机制
虚拟机把描述类的数据从Class文件夹加载到内存,并对数据进行小燕.转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制. 下面所说的Class文件不是具体的某个文件 ...
- R语言实战
教材目录 第一部分 入门 第一章 R语言介绍 第二章 创建数据集 第三章 图形初阶 第四章 基本数据管理 第五章 高级数据管理 第二部分 基本方法 第六章 基本图形 第七章 基本统计方法 第三部分 中 ...