MPandroidchart图表demo

2024-02-09 20:38
文章标签 图表 demo mpandroidchart

本文主要是介绍MPandroidchart图表demo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. GitHub 下载

https://github.com/sufadi/TemperaturChartUI

2. UI

TemperaturChartUI1

TemperaturChartUI2

3. 基本方法

3.1 初始化表格
    private void initLineChart() {// 显示边界mLineChart.setDrawBorders(true);// 背景颜色mLineChart.setBackgroundColor(0x80000000);// 网格背景mLineChart.setGridBackgroundColor(0x80000000);// 启用/禁用与图表的所有可能的触摸交互。mLineChart.setTouchEnabled(false);// 设定x轴最大可见区域范围的大小mLineChart.setVisibleXRangeMaximum(Visible_XRange_Maximum);// 设定y轴最大可见区域范围的大小mLineChart.setVisibleYRangeMaximum(100f, YAxis.AxisDependency.LEFT);mLineChart.setVisibleXRangeMinimum(0f);// 设置标签内容mLineChart.setDescription("");// 设置标签颜色mLineChart.setDescriptionColor(Color.WHITE);// 为chart添加空数据mLineChart.setData(getDefaultData());}
3.2 初始化X轴
    private void initXAxis() {// 得到X轴XAxis xAxis = mLineChart.getXAxis();// 得到X轴的位置xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);// 设置X轴间隔xAxis.setSpaceBetweenLabels(10);// 绘制网格线xAxis.setDrawGridLines(true);// 设置标签文本xAxis.setTextColor(Color.WHITE);// 设置文本显示xAxis.setValueFormatter(new XAxisValueFormatter() {@Overridepublic String getXValue(String original, int index, ViewPortHandler viewPortHandler) {// Log.d("sufadi", "original = " + original + ", index = " +// index);return String.format("%d s", index);}});}
3.3 初始化Y轴右侧
    private void initYAxisRight() {// 得到Y轴右侧并不显示YAxis rightYAxis = mLineChart.getAxisRight();rightYAxis.setEnabled(false);}
3.4 初始化Y轴左侧
    private void initYAxisLeft() {// 得到Y轴左侧YAxis leftYAxis = mLineChart.getAxisLeft();// 设置标签文本leftYAxis.setTextColor(Color.WHITE);leftYAxis.setAxisMaxValue(100f);leftYAxis.setAxisMinValue(0f);// 说明文字绘图外侧显示leftYAxis.setPosition(YAxis.YAxisLabelPosition.OUTSIDE_CHART);leftYAxis.setValueFormatter(new YAxisValueFormatter() {@Overridepublic String getFormattedValue(float value, YAxis yAxis) {return String.format("%d ℃", (int) value);}});// Y轴总会高出X轴一点,并没有从0点开始,因此需要对Y轴进行设置leftYAxis.setAxisMinValue(0f);}
3.5 初始化限制线
    /*** 限制线*/private void initLeftYAxisLimitLine() {// Y轴添加限制线LimitLine limitLine = new LimitLine(40, "");limitLine.setTextColor(Color.RED); // 颜色limitLine.setLineColor(Color.RED);mLineChart.getAxisLeft().addLimitLine(limitLine);}
3.6 折线图的线条设置
    /*** 折线图的线条设置*/private LineDataSet createLineDataSet(int Type) {LineDataSet mLineDataSet = new LineDataSet(null, "实际温度");switch (Type) {case TYPE_PREDICT:mLineDataSet.setLabel("预测温度");mLineDataSet.setColor(Color.GREEN);break;case TYPE_REAL:mLineDataSet.setLabel("实际温度");mLineDataSet.setColor(Color.YELLOW);break;default:break;}// 以左边坐标轴为准mLineDataSet.setAxisDependency(YAxis.AxisDependency.LEFT);// 设置文本大小mLineDataSet.setValueTextSize(12f);// 设置曲线值的圆点是实心还是空心mLineDataSet.setDrawCircleHole(false);// 设置曲线值的圆点大小mLineDataSet.setCircleSize(0);// 线模式为圆滑曲线(默认折线)mLineDataSet.setDrawCubic(true);// 折线是否显示数值mLineDataSet.setDrawValues(false);// 折线颜色return mLineDataSet;}
3.7 新增一条曲线
    private void addEntry(int Type) {LineData lineData = mLineChart.getData();if (null == lineData) {return;}LineDataSet dataSet = null;switch (Type) {case TYPE_PREDICT:dataSet = lineData.getDataSetByLabel("预测温度", true);break;case TYPE_REAL:dataSet = lineData.getDataSetByLabel("实际温度", true);break;default:break;}if (dataSet == null) {dataSet = createLineDataSet(Type);lineData.addDataSet(dataSet);}// 这里要注意,x轴的index是从零开始的// 假设index=2,那么getEntryCount()就等于3了int count = dataSet.getEntryCount();// add a new x-value first 这行代码不能少lineData.addXValue(count + "");float yValues = (float) (Math.random() * 60 + 10);lineData.addEntry(new Entry(yValues, count), lineData.getIndexOfDataSet(dataSet));mLineChart.notifyDataSetChanged();mLineChart.setVisibleXRangeMaximum(Visible_XRange_Maximum);mLineChart.moveViewToX(dataSet.getEntryCount());mLineChart.moveViewTo(dataSet.getEntryCount() - Visible_XRange_Maximum, 55f, AxisDependency.LEFT);Log.d(TAG, "set.getEntryCount()=" + dataSet.getEntryCount() + ", lineData.getXValCount() = " + lineData.getXValCount());}

这篇关于MPandroidchart图表demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695233

相关文章

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

使用Vue-ECharts实现数据可视化图表功能

《使用Vue-ECharts实现数据可视化图表功能》在前端开发中,经常会遇到需要展示数据可视化的需求,比如柱状图、折线图、饼图等,这类需求不仅要求我们准确地将数据呈现出来,还需要兼顾美观与交互体验,所... 目录前言为什么选择 vue-ECharts?1. 基于 ECharts,功能强大2. 更符合 Vue

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

Python如何在Word中生成多种不同类型的图表

《Python如何在Word中生成多种不同类型的图表》Word文档中插入图表不仅能直观呈现数据,还能提升文档的可读性和专业性,本文将介绍如何使用Python在Word文档中创建和自定义各种图表,需要的... 目录在Word中创建柱形图在Word中创建条形图在Word中创建折线图在Word中创建饼图在Word

Java实战之利用POI生成Excel图表

《Java实战之利用POI生成Excel图表》ApachePOI是Java生态中处理Office文档的核心工具,这篇文章主要为大家详细介绍了如何在Excel中创建折线图,柱状图,饼图等常见图表,需要的... 目录一、环境配置与依赖管理二、数据源准备与工作表构建三、图表生成核心步骤1. 折线图(Line Ch

C#图表开发之Chart详解

《C#图表开发之Chart详解》C#中的Chart控件用于开发图表功能,具有Series和ChartArea两个重要属性,Series属性是SeriesCollection类型,包含多个Series对... 目录OverviChina编程ewSeries类总结OverviewC#中,开发图表功能的控件是Char

linux 内核提权总结(demo+exp分析) -- 任意读写(四)

hijack_modprobe_path篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     原理同hijack_prctl, 当用户执行错误格式的elf文件时内核调用call_usermod

linux 内核提权总结(demo+exp分析) -- 任意读写(三)

hijack_prctl篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   prctl函数: 用户态函数,可用于定制进程参数,非常适合和内核进行交互 用户态执行prctl函数后触发prctl系统

linux 内核提权总结(demo+exp分析) -- 任意读写(二)

hijack_vdso篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     vdso: 内核实现的一个动态库,存在于内核,然后映射到用户态空间,可由用户态直接调用 内核中的vdso如果被修改

linux 内核提权总结(demo+exp分析) -- 任意读写(一)

cred篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   每个线程在内核中都对应一个线程结构块thread_infothread_info中存在task_struct类型结构体 struct t