Android使用MPAndroidChart 绘制折线图

news2024/11/28 0:47:56

效果图:

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.LineChart
            android:id="@+id/chart"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_weight="1" />

2.2在Java文件中编写代码:

 private LineChart chart;
 @Override
    protected 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.coloradmin.cn/o/1851606.html

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

相关文章

邀请函 | 人大金仓邀您相聚第十三届中国国际国防电子展览会

盛夏六月 备受瞩目的 第十三届中国国际国防电子展览会 将于6月26日至28日 在北京国家会议中心盛大举办 作为数据库领域国家队 人大金仓 将携系列行业解决方案 和创新实践成果亮相 期待您莅临指导 ↓↓↓↓↓↓ CIDEX 2024 中国国际国防电子展览会&#xff08;简称CIDEX&#xf…

信息安全基础知识(完整)

信息安全基础知识 安全策略表达模型是一种对安全需求与安全策略的抽象概念表达&#xff0c;一般分为自主访问控制模型&#xff08;HRU&#xff09;和强制访问控制模型&#xff08;BLP、Biba&#xff09;IDS基本原理是通过分析网络行为&#xff08;访问方式、访问量、与历史访问…

力扣每日一题 6/19 排序+动态规划

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 2713.矩阵中严格递增的单元格数【困难】 题目&#xff1a; 给你一个下标从…

PHPMailer发送的中文内容乱码如何解决

一&#xff1a; PHPMailer sdk 文件中有个设置默认编码的位置&#xff1a; vendor/phpmailer/phpmailer/src/PHPMailer.php 二&#xff1a; 实际业务代码中&#xff1a; require /sdk/PHPMailer/vendor/autoload.php;$mail new PHPMailer(true);try {//Server settings$mai…

AST小工具|编写一个通用的js混淆代码美化工具

关注它&#xff0c;不迷路。 本文章中所有内容仅供学习交流&#xff0c;不可用于任何商业用途和非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请联系作者立即删除&#xff01; 一.问题 如题&#xff0c;如何编写一个通用的js混淆代码美化工具&…

【C#上位机应用开发实战】—— UI界面设计与实践代码

在C#上位机应用开发中&#xff0c;UI界面设计是至关重要的一环。一个好的UI设计不仅可以提升应用的用户体验&#xff0c;还可以提高应用的易用性和效率。本文将介绍一些UI界面设计的实战经验和技巧。 在这个示例中&#xff0c;我们创建了一个名为MainForm的窗体类。该窗体包含了…

全流程FVCOM水环境、污染物迁移、水交换、水质、潮流、温盐、波浪及泥沙数值模拟

近年来&#xff0c;随着计算技术的发展和对海洋、水环境问题认识的加深&#xff0c;数值模拟技术在海洋、水环境等科学研究中的应用越来越广泛。FVCOM因其独特的优点&#xff0c;成为研究海洋动力过程、污染物扩散、水质变化等问题的重要工具。作为一种基于有限体积法的数值模型…

CVPR2023论文速览Transformer

Paper1 TrojViT: Trojan Insertion in Vision Transformers 摘要原文: Vision Transformers (ViTs) have demonstrated the state-of-the-art performance in various vision-related tasks. The success of ViTs motivates adversaries to perform backdoor attacks on ViTs.…

全面的WAS存储权限管理方案,了解一下

WAS存储权限管理通常指的是对Windows Azure Storage&#xff08;WAS&#xff09;的存储设备进行权限控制和管理。在企业中&#xff0c;随着数据量的飞速增长&#xff0c;对存储设备的安全性、效率和成本的关注也日益增加。有效的WAS存储权限管理可以确保数据的安全性&#xff0…

Python | Leetcode Python题解之第166题分数到小数

题目&#xff1a; 题解&#xff1a; class Solution:def fractionToDecimal(self, numerator: int, denominator: int) -> str:if numerator % denominator 0:return str(numerator // denominator)s []if (numerator < 0) ! (denominator < 0):s.append(-)# 整数部…

Redis大key有什么危害?如何排查和处理?

什么是 bigkey&#xff1f; 简单来说&#xff0c;如果一个 key 对应的 value 所占用的内存比较大&#xff0c;那这个 key 就可以看作是 bigkey。具体多大才算大呢&#xff1f;有一个不是特别精确的参考标准&#xff1a; String 类型的 value 超过 1MB 复合类型&#xff08;Li…

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;…

VB计算圆柱体积和表面积

已知圆半径和圆柱的高&#xff0c;计算圆柱体积和表面积。 Public Class Form1Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickConst PI 3.14159Dim r As Integer, h As IntegerDim t As Single, s As Singler Val(TextBox1.Text)h V…

高考志愿填报,如何权衡学校和专业?

高考是人生的分水岭&#xff0c;成绩好的学生能就读更好的大学&#xff0c;获得更多的学习资源&#xff0c;但也有一些同学即使凭借高分数进入了高校&#xff0c;专业的学习过程却不尽如人意&#xff0c;他们也没有将100%的精力投入到专业学习当中。 无论高考结束之后获得了多…

saas产品运营案例 | 联盟营销计划如何帮助企业提高销售额?

在当今数字化时代&#xff0c;SaaS&#xff08;软件即服务&#xff09;产品已成为企业提高效率、降低成本的重要工具。然而&#xff0c;面对激烈的市场竞争&#xff0c;如何有效地推广SaaS产品、提高销售额&#xff0c;成为许多企业面临的挑战。林叔将以ClickFunnels为例&#…

MURF3040CTR-ASEMI智能AI应用MURF3040CTR

编辑&#xff1a;ll MURF3040CTR-ASEMI智能AI应用MURF3040CTR 型号&#xff1a;MURF3040CTR 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220F 恢复时间&#xff1a;35ns 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;30A 最大循环峰值反向电压&#xff08;VR…

牛客练习题打卡--redis

A list保证数据线性有序且元素可重复&#xff0c;它支持lpush、blpush、rpop、brpop等操作&#xff0c;可以当作简单的消息队列使用&#xff0c;一个list最多可以存储2^32-1个元素; redis中set是无序且不重复的; zset可以按照分数进行排序 &#xff0c;是有序不重复的; Redi…

[图解]建模相关的基础知识-14

1 00:00:00,360 --> 00:00:03,690 相当于把行的数量给削减了 2 00:00:03,700 --> 00:00:10,540 你看&#xff0c;T4等于所有 3 00:00:10,550 --> 00:00:12,660 符合这种条件的&#xff0c;e属于T3 4 00:00:12,670 --> 00:00:15,210 然后性别是男性 5 00:00:15,…

20.Cargo和Crates.io

标题 一、采用发布配置自定义构建1.1 默认配置1.2 修改配置项 二、将crate发布到Crates.io2.1 编写文档注释2.2 常用&#xff08;文档注释&#xff09;部分2.3 文档注释作用测试2.4 为包含注释的项添加文档注释2.5 使用pub use导出公有API2.6 创建Crates.io账号2.7 发布2.8 版本…

若依框架集成微信支付

1. 添加微信支付相关依赖 <!-- 微信支付 --> <dependency><groupId>com.github.wxpay</groupId><artifactId>wxpay-sdk</artifactId><version>0.0.3</version> </dependency> <dependency><groupId>com.gi…