当前位置: 首页 > news >正文

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();}

相关文章:

  • Java学习 - MySQL存储过程、函数和触发器练习实例
  • Java中的设计模式:实战案例分享
  • labelme使用笔记:目标检测数据集标注和语义分割数据集批量生成
  • kafka第二篇——主题创建,主题分区副本分配策略
  • PWR电源控制
  • IDEA services模块无法启动springboot服务(添加了springboot但是为空白)
  • HTTP/2 的 ALPN(应用层协议协商)
  • 【前端】Git 常用
  • C语言| 宏定义
  • Python 学习 第四册 第10章 系统(2)
  • OpenCV图像变换
  • React的State和setState
  • Flink——最流批的大数据框架(流批一体)
  • 【Unity学习笔记】第十八 基于物理引擎的日月地系统简单实现
  • java智慧工地系统源码 智慧工地标准之一:环境监测 告别灰头土脸、智慧工地环境监测系统都包括哪些功能?
  • Bootstrap JS插件Alert源码分析
  • C语言笔记(第一章:C语言编程)
  • Django 博客开发教程 8 - 博客文章详情页
  • download使用浅析
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript设计模式与开发实践系列之策略模式
  • python_bomb----数据类型总结
  • Python学习笔记 字符串拼接
  • sessionStorage和localStorage
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 正则学习笔记
  • 数据库巡检项
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • #pragma once与条件编译
  • #stm32整理(一)flash读写
  • $.each()与$(selector).each()
  • (10)ATF MMU转换表
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (七)c52学习之旅-中断
  • (四)图像的%2线性拉伸
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .htaccess配置常用技巧
  • .Net 6.0 处理跨域的方式
  • .NET 发展历程
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .net分布式压力测试工具(Beetle.DT)
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • .net下的富文本编辑器FCKeditor的配置方法
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @antv/g6 业务场景:流程图
  • @JoinTable会自动删除关联表的数据
  • @RequestMapping 的作用是什么?
  • [ IO.File ] FileSystemWatcher
  • [20150904]exp slow.txt
  • [2021 蓝帽杯] One Pointer PHP