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(十二)--来点不一样的,正负堆叠条形图 接上篇,今天要说的,和上篇的类似,只是方向是有相反的两面,我们先看下效果 实际上这样就导致了我们的代码是比较类 ...
随机推荐
- JAVA 调用命令并输出
public class test10 { /** * @param args */ public static void main(String[] args) throws Exception { ...
- Java编程思想学习笔记_1(Java内存和垃圾回收)
1.Java中对象的存储数据的地方: 共有五个不同的地方可以存储数据. 1)寄存器.最快,因为位于处理器的内部,寄存器按需求分配,不能直接控制. 2)堆栈.位于通用RAM,通过堆栈指针可以从处理器那里 ...
- Android 上千张图片的列表滑动加载
一般项目中图片加载用的比较多的是ImageLoader 但是需求自己配置一些参数 上手有些复杂 对于手机图库中有上千张图片需要加载时 一个使用性能很好的库Glide可以解决 效果图如下 滑动非常流畅 ...
- hdu 5339 Untitled
这题很明显是签到题,可我比赛时却没做出,赤裸裸的爆零了,真悲剧…… 看了题解后才知道直接暴搜就行,只是需要把它们从大到小排序后再搜,我当时就没想到...不想再多说了 一开始我直接枚举所有情况: #in ...
- gO语言的安装和环境变量的配置
一.Go语言下载 go语言官方下载地址:https://golang.org/dl/ 找到适合你系统的版本下载,本人下载的是windows版本.也可以下载Source自己更深层次研究go语言. 二.G ...
- zabbix监控系统客户端安装
原文:http://blog.chinaunix.net/uid-25266990-id-3387002.html 测试使用agentd监听获取数据. 服务端的安装可以查看http://blog.ch ...
- 数据字典 dba_free_space及相对文件号RELATIVE_FNO 小结
1.1 dba_free_space 1.1.1 概述 SQL> desc dba_free_space; Name Type Nullable Default Comments ------- ...
- 提高php开发效率的9大代码片段
在网站开发中,我们都期望能高效快速的进行程序开发,如果有能直接使用的代码片段,提高开发效率,那将是极好的.php开发福利来了,今天小编就将为大家分享9大超实用的.可节省大量开发时间的php代码片段. ...
- import package的问题
在新建class的时候除了名字还可以选择包名: 新建2个包名,然后在不同的包里写2个同名的类, 程序中导入另外一个包 package com.hs;import com.hy.Father; 当直接使 ...
- Android Toolbar样式定制详解
前言 Marterial Design出来也有一段时间了,为了紧跟Google的设计规范,决定在项目中使用Toolbar.使用了一段时间之后,发现很多时候原始的Toolbar并不能满足项目的要求.为了 ...