Android强大的图表开源——MPAndroidChart

2023-11-13

这里写图片描述

介绍

在APP开发中遇到图表的样式,一般我们要先查询GitHub上比较火的开源框架,这种图标应用广泛,统计、游戏统计、人际关系图等等,用到今天的这个框架MPAndroidChart 点击查看GitHub
一个可以拖动缩放的图表库,包含曲线图、直方图、饼状图,其中直方图支持3d效果。
这里写图片描述

这里写图片描述

这里写图片描述

核心功能:

8种不同的图表类型
在两个轴上缩放(使用触摸手势,单独轴或捏缩放)
拖动/平移(使用触摸手势)
组合图(线,条,散射,蜡烛数据)
双(单独)轴
可定制轴(x轴和y轴)
突出显示值(具有可自定义的弹出式视图)
将图表保存到SD卡(作为图像或.txt文件)
预定义颜色模板
图例(自动生成,可自定义)
动画(在xPx和yPx轴上建立动画)
限制线(提供附加信息,最大值…)
完全可定制(油漆,字体,图例,颜色,背景,手势,虚线,…)
在Line和BarChart中可以平滑地缩放和滚动多达30.000个数据点
Gradle支持
直接从数据作图Realm.io移动数据库:MPAndroidChart-境界 ⚡️

1.入门

依赖

为了使用库,有4个不同的选项:
下面添加到项目层面build.gradle:

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}

或者

dependencies {
    compile 'com.github.PhilJay:MPAndroidChart:v3.0.1'
}

或者
添加以下到您的部分pom.xml:

<repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
</repository>

或者
添加以下到您的部分pom.xml:

<dependency>
    <groupId>com.github.PhilJay</groupId>
    <artifactId>MPAndroidChart</artifactId>
    <version>v3.0.1</version>
</dependency>

视图分类

LineChart (线性图表)

这里写图片描述
这里写图片描述

Combined-Chart (组合图表)

这里写图片描述

BarChart (条形图表)

这里写图片描述

Horizontal-BarChart(水平条形图表)

这里写图片描述

PieChart(圆形图表)

这里写图片描述

ScatterChart(分散式图表)

这里写图片描述

CandleStickChart(烛台图表)

这里写图片描述

BubbleChart (气泡图表)

这里写图片描述

RadarChart(雷达图表)

这里写图片描述

创建视图

在.xml中定义它:

 <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/chart"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

在代码中找到

LineChart chart = (LineChart) findViewById(R.id.chart);

代码实现

LineChart chart = new LineChart(Context);
    RelativeLayout rl = (RelativeLayout) findViewById(R.id.relativeLayout);
    rl.add(chart); // add the programmatically created chart

添加数据

在拥有图表实例后,可以创建数据并将其添加到图表中。此示例使用LineChart,其中Entry类在图表中用x和y坐标表示单个条目。其他图表类型,如BarChart使用其他类(例如BarEntry)为此目的。

YourData[] dataObjects = ...;

List<Entry> entries = new ArrayList<Entry>();

for (YourData data : dataObjects) {
    entries.add(new Entry(data.getValueX(), data.getValueY())); 
}

然后,需要将List创建的LineDataSet对象添加到。DataSet对象保存属于一起的数据,并允许该数据的单独样式。下面使用的“标签”只有一个描述性的目的,并显示在Legend,如果启用。

LineDataSet dataSet = new LineDataSet(entries, "Label"); // add entries to dataset
dataSet.setColor(...);
dataSet.setValueTextColor(...); // styling, ...

最后,需要将LineDataSet创建的一个或多个对象添加到LineData对象。此对象包含由Chart实例表示的所有数据,并允许进一步的样式。创建数据对象后,可以将其设置为图表并刷新:

LineData lineData = new LineData(dataSet);
chart.setData(lineData);
chart.invalidate(); // refresh

各种图表数据设置

LineChart
如果要向图表添加值(数据),则必须通过

  public void setData(ChartData data) { ... }

方法。该基类ChartData(ChartData)类封装在渲染过程中所需图表的所有数据和信息。对于每个类型的图表,不同的亚类ChartData(如LineData)存在应该用于该图表设定数据。在构造函数中,你可以交出一个List

  / * *列表构造* /
 public LineData(List<ILineDataSet> sets) { ... } 

 / * *构造与一个或多个对象ILineDataSet * /
 public LineData(ILineDataSet...) { ... }

那么,什么是一个DataSet和你为什么需要它?这实际上很简单。一个DataSet对象代表一组条目&

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android强大的图表开源——MPAndroidChart 的相关文章

  • 用NVivo图表培养您的视觉素养

    NVivo是一款支持定性研究方法和混合研究方法的软件 它可以帮助您收集 整理和分析访谈 焦点小组讨论 问卷调查 音频等内容 全新的NVivo12更可协助您处理社交媒体和网页内容 NVivo强大的搜索 查询和可视化工具使您可以深入地分析您的数
  • android安卓使用socketIO实现聊天室功能

    安卓使用socketIo实现聊天室Demo1 安卓androidSocketIo使用方式socketIo Android文档类资源 CSDN下载安卓使用socketio 和服务器进行通信 实现聊天室功能 可以正常进入退出聊天室 可以发送消息
  • JDK8主要新特性介绍(二)

    1 6 类库新特性 java util stream 类库包新特性 java util Optional 类新特性 java util Base64 类新特性 Java time 类新特性 其它常用类新增特性 HashMap类性能提升 1
  • Android开源框架之EventBus

    EventBus是一个Android端优化的publish subscribe消息总线 简化了应用程序内各组件间 组件与后台线程间的通信 比如请求网络 等网络返回时通过Handler或Broadcast通知UI 两个Fragment之间需要
  • 系统权限-数据权限案例分析

    文章目录 前言 一 数据权限 三 源代码下载 四 数据库权限设计图 五 数据权限前台界面 六 数据权限服务端 6 1 aop 拦截 数据范围 6 2 数据实现层ServiceImpl 埋点 七 总结 7 1设计思路 7 2 缺陷 前言 传统
  • 文件文档在线预览转换解决方案和应用

    文章目录 Java Word转PDF文件方案评测 一 kkFileView应用场景一 官网原始部署与应用 二 kkFileView应用场景二 编译 自定义制作docker镜像部署 三 kkfileview预览pdf文件以及关键词高亮和定位
  • Android开源框架之Afinal

    Afinal是一个android的ioc orm框架 内置了四大模块功能 FinalAcitivity FinalBitmap FinalDb FinalHttp 通过finalActivity 我们可以通过注解的方式进行绑定ui和事件 通
  • Streamlit 讲解专栏(十二):数据可视化-图表绘制详解(下)

    文章目录 1 前言 2 使用st vega lite chart绘制Vega Lite图表 2 1 示例1 绘制散点图 2 2 示例2 自定义主题样式 3 使用st plotly chart函数创建Plotly图表 3 1 st plotl
  • 【springboot系】springboot集成日志框架logback

    平常我们工作中常见的日志框架 有log4j logback log4j2 logback是由log4j的创始人设计的另外一个开源日志框架 logback相比之于log4j性能提升了不少 log4j2晚于logback 也是后起之秀 官方介绍
  • office文档图标显示不正常

    一直用Office2013 前几天用到WPS一个功能 用完后就卸载了 结果电脑中的office文档图标 word excel ppt等 都显示异常 网上查找好久解决了 网址如下 https jingyan baidu com article
  • WinForm控件Chart的图表类型

    将就看 后期再加目录导航2020 10 23 折线图 折线图通常使用一条线来连接一系列不同的数据点 这样的直线是直线 样条曲线或阶梯 折线图更简单 因此还可以使您可视化多个系列而不会像条形图那样重叠 以下是折线图的不同类型 折线图 折线图使
  • 大屏项目的优化性能(很全)--Vue+echarts+轮播定时出现的白屏,卡死,

    1 问题表现 项目是轮播一个页面多个组件的形式来展示页面中的图表 模板 一个组件模板当中有3 4个图表 定时轮播接口 但是页面经常白屏 且占用工控机的CPU资源消耗太大 固来优化性能 2 项目自测 chrome的调试工具测试发现CPU占用特
  • 【springmvc系】利用RequestBodyAdviceAdapter做接口鉴权

    需求 有个简单的需求 对于第三方接口我们需要做个简单的鉴权机制 这边使用的是非对称性加密的机制 我们提供三方公钥 他们通过公钥对接口json报文使用加密后的报文请求 我们通过对接收过来的请求某一个加密报文字段来进行RSA解密校验 考虑到日后
  • 流程图控件GoJS内置GraphObject类各指数介绍

    GoJS是一款功能强大 快速且轻量级的流程图控件 可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图 且极大地简化您的JavaScript Canvas 程序 点击下载GoJS最新版 背景点击 功能 InputEve
  • Android开源框架之okhttp

    OKHttp是一款高效的HTTP客户端 支持连接同一地址的链接共享同一个socket 通过连接池来减小响应延迟 还有透明的GZIP压缩 请求缓存等优势 其核心主要有路由 连接协议 拦截器 代理 安全性认证 连接池以及网络适配 拦截器主要是指
  • JEESITE4实战之旅(五) 多数据源和图表

    前段时间有点忙 今天得空赶紧继续移植工作 今天要说一说多数据源的配置 自定义复杂查询 以及图表的操作 当然还是根据业务需求来 最近客户想让我在新系统上加一个销售汇总的功能 按月统计各个部门的销售额 废话 不多说 先上最终的效果图 因为汇总的
  • Android开发常用开源框架:图片处理

    1 图片加载 缓存 处理 框架名称 功能描述 Android Universal Image Loader 一个强大的加载 缓存 展示图片的库 已过时 Picasso 一个强大的图片下载与缓存的库 Fresco 一个用于管理图像和他们使用的
  • WPF图表Live Charts(四)动态折线图

    简介 前面介绍了Live Charts的基础和设置 接下将介绍如何绘制动态的折线图 实时更新数据的折线图 效果预览 前台代码
  • 若依框架前后端分离版本自动生成代码的详细步骤

    1 若依框架的下载和本地运行这里就不介绍了主要讲代码自动生成 只是单表的增删改成 复杂的多表业务逻辑还是需要自己手写的 话不多说直接上图 一 新建模块 本地运行起来后右键新建Module 注意这里的Name 可以和若依类似 也可以自己定义新
  • 开源框架若依实战Demo学习笔记

    若依是个不错的框架 下面是我用他写的一个简单demo 以后会在此基础上进行进一步的开发 下面是整合的过程 我在整合的过程中可谓是一波三折 大家如果不想走弯路 那么这篇文章将对你很有帮助 首先 项目代码地址先列出来 方便大家下载使用 这是整理

随机推荐

  • x86-64 汇编基础 ---- 记读 《CS: APP》

    x86 64 汇编基础 记读 CS APP 通常情况下 使用现代的优化编译器产生的代码至少与一个熟练的汇编语言程序员手工编写的代码一样有效 1 看懂汇编码 1 汇编码的格式 ATT格式 这是GCC OBJDUMP和其它一些工具的常用格式 由
  • 推荐系统实战2——EasyRec 推荐框架环境配置

    推荐系统实战2 EasyRec 推荐框架环境配置 学习前言 先验条件 EasyRec仓库地址 EasyRec环境配置 一 EasyRec的下载 二 EasyRec的初始化 三 EasyRec的安装 四 一些额外的情况 学习前言 EasyRe
  • opencv 读取NV12格式(.yuv)文件,并转为RGB格式保存为JPG

    实测代码如下 include
  • OpenStack的搭建与使用

    初次接触open stack与Linux 如有错误与可改进的地方 恳请指出 一 搭建 一 配置推荐 系统 镜像 内存 储存 Linux centos7 6 16G 100G 二 前期准备 1 开启虚拟化 图2 1 开启虚拟化 2 关闭防火墙
  • C语言典型例题四——斐波那契数列

    Fibonacci 斐波那契 数列 求斐波那契数列的前40个数 这个数列有个特点 第1 2两个数为1 1 从第三个数开始 该数是其前面两个数之合 即该数列为1 1 2 3 5 8 13 这是一个有趣的古典数学问题 有一对兔子 从出生后第三个
  • python 在Excel中新增一列

    1 在Excel中定义新列 定义新列需要用到columns tolist 函数 具体代码如下 col name df columns tolist col name insert 新列位置 新列名称 wb df reindex column
  • Log4j2源码分析系列:(一)配置加载

    在实际开发项目中 日志永远是一个绕不开的话题 本系列文章试图以slf4j和log4j2日志体系为例 从源码角度分析日志工作原理 学习日志框架 首先要熟悉各类日志框架 这里推荐两篇文章 就不再赘述了 https www cnblogs com
  • C——选择结构

    选择结构 1 关系运算与逻辑运算 1 1 关系运算 1 2 逻辑运算 2 if语句 2 1 单分支的if语句 2 2 双分支的if语句 3 条件运算符 4 switch语句 1 关系运算与逻辑运算 C语言中的逻辑值 C语言将 非0 值当做值
  • buuCTF [ISITDTU 2019]EasyPHP 1

    buuCTF ISITDTU 2019 EasyPHP 1 直接代码审计 第一个if 过preg match 一般有三种方法 取反绕过 异或绕过 转义绕过 这里用取反绕过 第二个if的意思是输入的字符串不重复的字符长度不超过0xd即13 如
  • select 模型解释

    套接字模式 阻塞套接字和非阻塞套接字 或者叫同步套接字和异步套接字 套接字模型 描述如何对套接字的I O行为进行管理 Winsock提供的I O模型一共有五种 select WSAAsyncSelect WSAEventSelect Ove
  • mybatis plus分页total=0、不计算总数的终极解决方案!!!

    当你在加入分页配置 如下 Configuration public class MybatisPlusConfig mybatis plus分页插件 Bean public PaginationInterceptor paginationI
  • 爬虫字体反爬的解决(一)

    爬虫字体反爬的解决 一 学习了前边的爬虫知识 大家一定爬取过很多的网站了 也一定被很多网站的各式各样的反爬机制劝退过 那么这些反爬机制如何来破解 大家也一定想破了头 本节课 我们来搞点不同寻常的有深度的事情 破解字体反爬 大家看目录 发现我
  • 【待解决】[LeetCode-101]-Symmetric Tree(判断两颗二叉树是否对称)

    文章目录 0 题目相关 1 Solution 0 题目相关 题目解读 给定两颗二叉树 对这两颗二叉树进行比较 判断这两棵二叉树是否对称 原题描述 原题链接 Given a binary tree check whether it is a
  • LeetCode题——最长无重复子串

    题目 给定一个字符串 请你找出其中不含有重复字符的 最长子串 的长度 如 输入 abcbabcd 输出 4 解释 因为无重复字符的最长子串是 abcd 所以其长度为 4 思路 一开始容易往暴力遍历的方向想 但是实际上运用窗口的思想就很容易解
  • [Unity2D/3D]实用的血条制作(第二期)

    Unity2D 3D 实用的血条制作 第二期 前言 第一期我为大家介绍了一种我自己摸索出来的血条制作方法 不是很常规 在这里我为大家介绍一种比较常用的血条制作方法 利用Mask组件来制作 让我们一起来看看叭 效果如图 1 首先我们把制作血条
  • Linux网络:数据链路层

    文章目录 数据链路层 和 网络层 认识以太网 以太网帧格式 认识MAC地址 认识MTU MTU对IP UDP TCP协议的影响 ARP协议 ARP数据报的格式 DNS Domain Name System 简介 域名简介 ICMP协议 pi
  • 【Linux】文件权限

    权限分为 r 读 w 写 x 执行 文件可以属于某个人也可以属于某个群体 由此可划分出三种 文件所有者 所属用户组 其他人 其他人指的是 既不是文件所有者且也不所属用户组中的用户 liuquan localhost ls l 总用量 0 r
  • CH8-HarmonyOS流转架构解析

    文章目录 前言 目标 核心概念 流转架构特性 Ability的调度 流转应用场景 流转架构 核心模块 跨端迁移关键流程 多端协同关键流程 分布式任务调度 连接远程PA 启动远程FA PA 迁移FA 接口IAbilityContinuatio
  • Android强大的图表开源——MPAndroidChart

    介绍 在APP开发中遇到图表的样式 一般我们要先查询GitHub上比较火的开源框架 这种图标应用广泛 统计 游戏统计 人际关系图等等 用到今天的这个框架MPAndroidChart 点击查看GitHub 一个可以拖动缩放的图表库 包含曲线图
  • 求整数的位数及各位数字之和 (15 分)

    7 5 求整数的位数及各位数字之和 15 分 对于给定的正整数N 求它的位数及其各位数字之和 输入格式 输入在一行中给出一个不超过10 9 的正整数N 输出格式 在一行中输出N的位数及其各位数字之和 中间用一个空格隔开 输入样例 321 输