Android MPAndroidChart之PieChart和数据结构以及模型【5】

以MPAndroidChart的饼状图PieChart为例。

测试的MainActivity的Java代码:

package com.example.piechart;

import java.util.ArrayList;

import com.github.mikephil.charting.charts.PieChart;

import com.github.mikephil.charting.data.Entry;

import com.github.mikephil.charting.data.PieData;

import com.github.mikephil.charting.data.PieDataSet;

import com.github.mikephil.charting.formatter.PercentFormatter;

import android.app.Activity;

import android.graphics.Color;

import android.os.Bundle;

/*

* MPAndroidChart比较复杂的部分在于绘制图表的数据源的数据结构。

* 通常,在一个二位的坐标体系内,一个任意的坐标点应包含(x,y)这样的对应数据点。

* 一般模型是在x坐标轴的x-i位置,y存在一个对应的y-i值对应,形成坐标点(i-x,i-y)

* MPAndroidChart在一定角度上将x轴的数据集处理成(i,字符标签)的简单模式,

* 但MPAndroidChart对于y轴的数据集整合成复杂的复合体。初级,y轴的Entry包含(x,y)这样的坐标点数据。

* 比如,在坐标点(xi,yi)的位置绘制数据点,那么在MPAndroidChart中,在x轴的i位置绘制字符串表示是x坐标轴的数值,然后构造y坐标轴的Entry,Entry包含(value,i)

*

* */

public class MainActivity extends Activity {

private PieChart mChart;

private String[] x = new String[] { "A类事物", "B类事物", "C类事物" };

// 凑成100 % 100

private float[] y = { 10f, 60f, 30f };

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mChart = (PieChart) findViewById(R.id.chart);

// 图的描述

mChart.setDescription("by Zhang Phil @ http://blog.csdn.net/zhangphil");

// 以3个对应数据集做测试

setData(x.length);

}

private void setData(int count) {

// 准备x"轴"数据:在i的位置,显示x[i]字符串

ArrayList xVals = new ArrayList();

// 真实的饼状图百分比分区。

// Entry包含两个重要数据内容:position和该position的数值。

ArrayList yVals = new ArrayList();

for (int xi = 0; xi < count; xi++) {

xVals.add(xi, x[xi]);

// y[i]代表在x轴的i位置真实的百分比占

yVals.add(new Entry(y[xi], xi));

}

PieDataSet yDataSet = new PieDataSet(yVals, "百分比占");

// 每个百分比占区块绘制的不同颜色

ArrayList colors = new ArrayList();

colors.add(Color.RED);

colors.add(Color.GREEN);

colors.add(Color.BLUE);

yDataSet.setColors(colors);

// 将x轴和y轴设置给PieData作为数据源

PieData data = new PieData(xVals, yDataSet);

// 设置成PercentFormatter将追加%号

data.setValueFormatter(new PercentFormatter());

// 文字的颜色

data.setValueTextColor(Color.BLACK);

// 最终将全部完整的数据喂给PieChart

mChart.setData(data);

mChart.invalidate();

}

}

需要的布局文件,其实就一个PieChart元素:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="com.example.piechart.MainActivity" >

android:id="@+id/chart"

android:layout_width="match_parent"

android:layout_height="match_parent" />

代码运行结果:

相关文章:

【1】《Android统计图表MPAndroidChart》链接地址:http://blog.csdn.net/zhangphil/article/details/47656521

【2】《基于Android MPAndroidChart实现腾讯QQ群数据统计报表核心功能》链接地址:http://blog.csdn.net/zhangphil/article/details/47685515

【3】《Android实现天气预报温度/气温折线趋势图》链接地址:http://blog.csdn.net/zhangphil/article/details/47702245

【4】《Android统计图表之柱状图(条形图)》链接地址:http://blog.csdn.net/zhangphil/article/details/47727913

【5】MPAndroidChart在github上的项目主页:https://github.com/PhilJay/MPAndroidChart

piechart 文档 android,Android MPAndroidChart之PieChart和数据结构以及模型【5】相关推荐

  1. android11用石墨文档,轻协作 | 石墨文档 for Android 版轻体验

    前几天喜闻石墨文档终于推出 Android 版本,算是全面支持 ios.Android 和 web 平台.身为 Android 用户,可以告别体验不佳的 web 端,下面为大家送上石墨文档 for A ...

  2. android程序打印,通过iPrintScan软件打印文档(适用于Android安卓)

    文档标题:通过iPrint&Scan软件打印文档(适用于Android安卓) 文档代码:CHN-FP0576-1 最近修改日期:2020年11月19日 通过iPrint&Scan软件打 ...

  3. NLP之TM之LDA:利用LDA算法瞬时掌握文档的主题内容—利用希拉里邮件数据集训练LDA模型并对新文本进行主题分类

    NLP之TM之LDA:利用LDA算法瞬时掌握文档的主题内容-利用希拉里邮件数据集训练LDA模型并对新文本进行主题分类 目录 输出结果 设计思路 核心代码 训练数据集 LDA模型应用 输出结果 设计思路 ...

  4. piechart 文档 android,(Android 应用之路) MPAndroidChart~PieChart

    简介 AndroidChart">MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库, ...

  5. Android程序解析xml至文档中,Android开发之DOM解析xml文件的方法

    本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 李明 30 李向梅 25 二.在service中写一个DOM解析的操作 ...

  6. Windows 下 OpenCV 3.4.0 + Contrib 部署文档 (VS2015 Android)

    声明 以下[参考]链接,如有侵权,请联系删除,在此先感谢在网络上无私奉献的人们~ 如有错误,请联系更正,GitHub同文地址 文章目录 声明 VS 篇 编译 OpenCV + OpenCV_Contr ...

  7. win7我的文档里.android是什么文件夹,[转载]移动Win7用户文件夹(我的文档)默认位置至D盘...

    Windows7的用户文件夹默认所在位置是系统盘(通常是C盘)下的"Users"目录之内.该文件夹中储存着所有的用户生成文件,比如你保存在"桌面"上的文件(实际 ...

  8. 迄今为止最全的技术文档汇总,编程语言,操作系统,数据结构,设计模式等赶紧收藏起来。

    前端江太公 目录 语言无关 版本控制 编程艺术 编辑器 编译原理 操作系统 程序员杂谈 大数据 分布式系统 管理和监控 函数式概念 计算机图形学 其它 软件开发方法 设计模式 数据库 项目相关 在线教 ...

  9. 03_TF2 Guide、文档清单(数据输入、估计器、保存模型、加速器、性能调优等)、TF2库和扩展库(TensorBoard、数据集、TensorFlow Hub、概率和统计分析库、图像处理库)

    对应位置:https://tensorflow.google.cn/guide 本博文为笔者对TensorFlow2官网翻译,后续会将此博文完善,连接对应地址,将会被慢慢替换大家熟悉的中文博文 1.T ...

最新文章

  1. 终于决定要写写东西了
  2. 深层学习:心智如何超越经验2.3 解释变化
  3. html5毕业作品开场白,毕业典礼主持人开场白
  4. 密码篇——非对称加密
  5. 20165334 《java程序设计》第2周学习总结
  6. mysql5.7学习nosql_如何学习NoSQL?
  7. Python 30年,你对它的核心特性了解多少?
  8. 工业交换机如何判断性能的好坏呢?
  9. 一文读懂MySQL查询语句的执行过程
  10. FortiGate双链路不同运营商上网配置
  11. java 中的锁 aqs_Java并发编程系列-(4) 显式锁与AQS
  12. 十几个NPM恶意包劫持 Discord 服务器
  13. 会议家用多面手!智能微型投影设备导购
  14. 20169212《Linux内核原理及分析》第十二周作业
  15. 算法笔记_面试题_2.移动零(将数组的的0元素移到末尾)
  16. Java自学网站推荐(整理好发给大家)
  17. 精灵商场项目(二)--Github+EasyUI+商品列表
  18. iphone通过iTunes12.7怎么设置铃声
  19. coursera “the media could not be loaded either because the server or network falled...“解决办法
  20. android补间动画有哪几种,android三种动画详解(补间动画、帧动画、属性动画)...

热门文章

  1. react native XML解析
  2. XML解析之DOM解析详解
  3. 【前端入门】jQuery
  4. 用便宜的改装件裸板远程wifi智能控制电器
  5. 众人划桨开大船---公司春节联欢部门节目剧本
  6. MySQL排序规则批量修改
  7. 塞力斯是鸿蒙系统吗,赛力斯余海坤:重点发展增程式系统 努力成为第一个搭载华为鸿蒙系统的车企...
  8. js-event(事件对象)详解
  9. SpringBoot支付宝扫码支付(沙箱环境)
  10. 原码补码反码范围对比图