Android使用MPAndroidChart 绘制折线图

效果图:

1.导入依赖

1.1在项目根目录下的build.gradle文件中添加代码(注意不是app下的build.gradle):

maven { url 'https://jitpack.io' }

1.2在app下的build.gradle中的依赖下添加:

implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'

(添加后记得同步)

2.编写代码

2.1在页面布局代码中添加:

<com.github.mikephil.charting.charts.LineChartandroid:id="@+id/chart"android:layout_width="match_parent"android:layout_height="200dp"android:layout_weight="1" />

2.2在Java文件中编写代码:

 private LineChart chart;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_devices_demo);chart = findViewById(R.id.chart);initData();
}
private void initData(){// 准备数据List<Entry> entriesTemperature = new ArrayList<>();List<Entry> entriesHumidity = new ArrayList<>();List<Entry>  entriesPm = new ArrayList<>();entriesTemperature.add(new Entry(0,32));entriesTemperature.add(new Entry(1,33));entriesTemperature.add(new Entry(2,28));entriesTemperature.add(new Entry(3,30));entriesTemperature.add(new Entry(4,27));entriesTemperature.add(new Entry(5,31));entriesHumidity.add(new Entry(0,52));entriesHumidity.add(new Entry(1,60));entriesHumidity.add(new Entry(2,44));entriesHumidity.add(new Entry(3,55));entriesHumidity.add(new Entry(4,70));entriesHumidity.add(new Entry(5,65));entriesPm.add(new Entry(0,25));entriesPm.add(new Entry(1,36));entriesPm.add(new Entry(2,20));entriesPm.add(new Entry(3,65));entriesPm.add(new Entry(4,43));entriesPm.add(new Entry(5,20));// 创建数据集LineDataSet temperatureDataSet = new LineDataSet(entriesTemperature, "温度(℃)");LineDataSet humidityDataSet = new LineDataSet(entriesHumidity, "湿度(%)");LineDataSet pmDataSet = new LineDataSet(entriesPm, "PM2.5(μg/m³)");
//        // 设置温度数据集样式temperatureDataSet.setLineWidth(2.5f); // 设置线的宽度temperatureDataSet.setColor(Color.BLUE); // 设置线的颜色temperatureDataSet.setCircleColor(Color.BLUE); // 设置数据点的颜色(可选)temperatureDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)temperatureDataSet.setFillColor(Color.parseColor("#009AD1")); // 设置填充颜色(可选)temperatureDataSet.setDrawFilled(true); // 启用填充(可选)temperatureDataSet.setDrawCircles(true); // 是否显示数据点(可选)temperatureDataSet.setDrawValues(true); // 是否显示数据值(可选)temperatureDataSet.setValueTextColor(Color.WHITE); // 设置数据值文本的颜色(如果显示的话)
//        // 设置湿度数据集样式humidityDataSet.setLineWidth(2.5f); // 设置线的宽度humidityDataSet.setColor(Color.GREEN); // 设置线的颜色humidityDataSet.setCircleColor(Color.GREEN); // 设置数据点的颜色(可选)humidityDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)humidityDataSet.setFillColor(ColorTemplate.MATERIAL_COLORS[0]); // 设置填充颜色(可选)humidityDataSet.setDrawFilled(true); // 启用填充(可选)humidityDataSet.setDrawCircles(true); // 是否显示数据点(可选)humidityDataSet.setDrawValues(true); // 是否显示数据值(可选)humidityDataSet.setValueTextColor(Color.BLACK); // 设置数据值文本的颜色(如果显示的话)// 设置PM2.5数据集样式pmDataSet.setLineWidth(2.5f); // 设置线的宽度pmDataSet.setColor(Color.YELLOW); // 设置线的颜色pmDataSet.setCircleColor(Color.YELLOW); // 设置数据点的颜色(可选)pmDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)pmDataSet.setFillColor(Color.parseColor("#FFFFA0")); // 设置填充颜色(可选)pmDataSet.setDrawFilled(true); // 启用填充(可选)pmDataSet.setDrawCircles(true); // 是否显示数据点(可选)pmDataSet.setDrawValues(true); // 是否显示数据值(可选)pmDataSet.setValueTextColor(Color.BLACK); // 设置数据值文本的颜色(如果显示的话)// 创建一个LineData对象,并将数据集集合传递给它LineData data = new LineData(temperatureDataSet,humidityDataSet,pmDataSet);// 将数据设置给图表chart.setData(data);// 刷新图表以显示数据chart.invalidate();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/32260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7 内核 3.10 升级 6.5.2 (RPM 直装 + 源码编译)

方案一 直接基于 RPM 在线升级&#xff08;简单&#xff0c;速度快&#xff09; rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y # &#xff08;选项一&#xff09;升级最新版内…

昇腾Ascend上使用分布式训练

一、环境搭建 1、使用hccn_tool配置昇腾训练卡的芯片网络&#xff0c;包括ip地址和掩码 命令原型 hccn_tool [-i %d] -ip -s [address %s] [netmask %s] 使用样例(配置两张卡)&#xff1a; hccn_tool -i 0 -ip -s address 192.168.2.10 netmask 255.255.255.0 hccn_tool …

IOS Swift 从入门到精通:协议和扩展

文章目录 协议协议继承扩展协议扩展面向协议的编程总结&#xff1a; 今天你将学习一些真正的 Swifty 功能&#xff1a;协议和面向协议的编程&#xff08;POP&#xff09;。 POP 摒弃了庞大而复杂的继承层次结构&#xff0c;代之以更小、更简单、可以组合在一起的协议。这确实应…

Magento1与Magento2的区别

本人接触magento有些年头了。。。 2012年开始用magento 1.7。2016年开始用magento2.0。 截止到目前。M1最新版本是1.9.3.3。 M2最新版本是2.2.2。 想当年第一次接触magento的时候&#xff0c;是跟同事一起&#xff0c;网上下载的Alan Storm的深入理解magento系统&#xff0c;…

【UML用户指南】-20-对基本行为建模-交互图

目录 1、概述 2、顺序图 2.1、两个不同于通信图的特征&#xff1a; 2.1.1、顺序图有对象生命线 2.1.2、顺序图有控制焦点 2.2、结构化控制 2.2.1、可选执行opt 2.2.2、条件执行alt 2.2.3、并行执行par 2.2.4、循环迭代执行loop 2.3、嵌套活动图 3、通信图 3.1、两…

【Python】实用脚本--大疆精灵4rtk照片信息提取

你是否想过&#xff0c;为啥就是拍个照片&#xff0c;为啥会占用几十上百兆&#xff1f; 其实除了照片的像素&#xff0c;照片里还附带了很多其他信息。 这个脚本是之前读取大疆精灵4rtk拍摄的照片信息用的&#xff0c;发出来&#xff0c;按需取用。 #!/usr/bin/env python # …

jnp.matmul和jnp.dot的区别?

jnp.matmul 和 jnp.dot 都是用于矩阵乘法的函数&#xff0c;但它们在处理多维数组&#xff08;即张量&#xff09;时有不同的行为。以下是它们的区别和具体用法&#xff1a; jnp.dot 主要用于向量点积和矩阵乘法。对于一维数组&#xff0c;计算向量的点积。对于二维数组&…

Flutter第十二弹 Flutter多平台运行

目标&#xff1a; 1.在多平台调试启动Flutter程序运行 一、安卓模拟器 1.1 检查当前Flutter适配的版本 flutter doctor提供了Flutter诊断。 $ flutter doctor --verbose /Users/zhouronghua/IDES/flutter/bin/flutter doctor --verbose [✓] Flutter (Channel master, 2.1…

【代码随想录算法训练Day45】LeetCode 198.打家劫舍、LeetCode 213.打家劫舍II、LeetCode 337.打家劫舍III

Day45 动态规划第七天 LeetCode 198.打家劫舍 dp数组含义&#xff1a;考虑偷前i家后的最大钱币为dp[i] 递推公式&#xff1a;dp[i]max(dp[i-2]nums[i],dp[i-1]) 初始化&#xff1a;dp[0]nums[0],dp[1]max(dp[0],dp[1]),dp[i]任意值 遍历顺序&#xff1a;从小到大 class Solu…

【硬件开发】电阻

电阻精度 电阻封装和功率的关系 裕度 50%的裕度&#xff0c;0603封装的功率为0.1W的情况下&#xff0c;实际只能使用0.05W的功率。 精度 温漂 零欧电阻 用法 1.跳线 如果不用某条线路&#xff0c;直接不焊零欧电阻就行 2.预留 后期调试看看需不需要更换为其他阻值例如33R的…

Docker 下载与安装以及配置

安装yum工具 yum install -y yum-ulits配置yum源 阿里云源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装Docker 17.03后为两个版本&#xff1a; 社区版&#xff08;Community Edition&#xff0c;缩写为 CE&#x…

Amazon 文本数据提取服务-Textract对比Amazon 自然语言处理服务-Comprehend

前言 在人工智能技术不断进步的当下&#xff0c;自然语言处理&#xff08;NLP&#xff09;和机器学习正变得越来越重要。Amazon Web Services&#xff08;AWS&#xff09;为我们提供了Amazon Textract 和 Amazon Comprehend这两大服务&#xff0c;帮助我们更好地处理和分析文本…

leetcode-15-[654]最大二叉树[617]合并二叉树[700]二叉搜索树中的搜索[98]验证二叉搜索树

一、[654]最大二叉树 注意&#xff1a;可以与后序中序建树一起写&#xff0c;思想类似 class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {return traversal(nums,0, nums.length);}TreeNode traversal(int[] nums,int begin,int end){//左闭右开if(…

2024/06/21--代码随想录算法10-12/17| 子序列问题

300.最长递增子序列 力扣链接 动规五部曲 dp的定义 dp[i]表示子序列答案以nums[i]结尾的最长递增子序列的长度 为什么一定表示 “以nums[i]结尾的最长递增子序” &#xff0c;因为我们在 做 递增比较的时候&#xff0c;如果比较 nums[j] 和 nums[i] 的大小&#xff0c;那么两…

【机器学习 复习】第9章 降维算法——PCA降维

一、概念 1.PCA &#xff08;1&#xff09;主成分分析&#xff08;Principal ComponentAnalysis&#xff0c;PCA&#xff09;一种经典的线性降维分析算法。 &#xff08;2&#xff09;原理&#xff0c;这里以二维转一维为例&#xff0c;原来的平面变成了一条直线 这是三维变二…

Leetcode85

题目描述 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵&#xff0c;找出只包含 1 的最大矩形&#xff0c;并返回其面积。 解题思路 动态规划的思想&#xff0c;记录每一个位置向上能到达的最大高度&#xff0c;和向左能到达的最大宽度。 在一个点进行遍历时…

Langchain 如何工作

How does LangChain work? LangChain是如何工作的? Let’s consider our initial example where we upload the US Constitution PDF and pose questions to it. In this scenario, LangChain compiles the data from the PDF and organizes it. 让我们考虑我们最初的例子…

@Value+@ConfigurationProperties+@PropertySource

Value&#xff1a; 这个注解用于注入字面量或来自属性文件的值。它可以用于字段、构造函数参数、方法参数等。例如&#xff0c;Value("${property.name}") 会注入名为 property.name 的属性值。 ConfigurationProperties&#xff1a; 这个注解用于将配置属性映射到一…

红队攻防渗透技术实战流程:中间件安全:IISNGINXAPACHETOMCAT

红队攻防渗透实战 1. 中间件安全1.1 中间件-IIS-短文件&解析&蓝屏等1.2 中间件-Nginx-文件解析&命令执行等1.2.1 后缀解析 文件名解析1.2.2 cve_2021_23017 无EXP有POC1.2.3 cve_2017_7529 意义不大1.3 中间件-Apache-RCE&目录遍历&文件解析等1.3.1 cve_20…

荷兰与法国战平,双方能携手出现?

就在昨天晚上&#xff0c;荷兰队经历了90分钟的鏖战&#xff0c;最终0-0与法国队握手言和。此役&#xff0c;哈维-西蒙斯为荷兰队打进一球&#xff0c;但进球被判无效。从目前的积分形势来看&#xff0c;双方基本上确定携手晋级16强赛。本场比赛&#xff0c;荷兰队后卫内森-阿克…