返回顶部
首页 > 资讯 > 移动开发 >Android 使用MPAndroidChart:v3.1.0绘制动态折线图
  • 387
分享到

Android 使用MPAndroidChart:v3.1.0绘制动态折线图

折线图mpandroidchart动态Android 2022-06-06 13:06:53 387人浏览 薄情痞子
摘要

工作需要绘制一张可动态添加的折线图,经过筛选,选择MPAndroidChart:v3.1.0。 **使用方法:** 1、添加bui

   工作需要绘制一张可动态添加的折线图,经过筛选,选择MPAndroidChart:v3.1.0。
   **使用方法:**

1、添加build gradle
在这里插入图片描述
项目的build gradle中上述位置中添加“Maven { url ‘https://jitpack.io’ }”这串代码。
在APP的build gradle的dependencies中添加 implementation 'com.GitHub.PhilJay:MPAndroidChart:v3.1.0’依赖。
在插入折线图的activity中添加如下代码,自行调整位置等。


  在项目中新建一个javal类,效果如下图所示:

在这里插入图片描述
在chart中插入下方的三个方法

 public static void chart_init(LineChart chart)
    {
        //chart.setOnChartValueSelectedListener(this);
        // enable description text
        chart.getDescription().setEnabled(true);
        // enable touch gestures
        chart.setTouchEnabled(true);
        
        Description description =new Description();
        description.setText("氨气浓度(ppm)");
        description.setPosition(700,50);
        description.setTextColor(Color.RED);
        description.setTextSize(15);
        chart.setDescription(description);//设置图表描述信息
        chart.setNoDataText("没有数据熬");//没有数据时显示的文字
        chart.setNoDataTextColor(Color.RED);//没有数据时显示文字的颜色
        chart.setDrawGridBackground(false);//chart 绘图区后面的背景矩形将绘制
        chart.setDrawBorders(false);//绘制图表边框的线
        // enable scaling and dragging
        chart.setDragEnabled(true);
        chart.setScaleEnabled(true);
        chart.setDrawGridBackground(false);
        // if disabled, scaling can be done on x- and y-axis separately
        chart.setPinchZoom(true);
        // set an alternative background color
        //chart.setBackgroundColor(0x4169E1FF);
        LineData data = new LineData();
        data.setValueTextColor(Color.BLACK);
        // add empty data
        chart.setData(data);
        // get the legend (only possible after setting data)
        Legend l = chart.getLegend();
        // modify the legend ...
        l.setFORM(Legend.LegendForm.LINE);
        l.setTextColor(Color.BLACK);
        //x轴配置
        XAxis xl = chart.getXAxis();
        //xl.setTypeface(tfLight);
        xl.setTextColor(Color.BLACK);
        xl.setDrawGridLines(false);
        xl.setAvoidFirstLastClipping(true);
        xl.setEnabled(true);
        xl.setPosition(XAxis.XAxisPosition.BOTTOM);//X轴文字显示位置
        //左y轴配置
        YAxis leftAxis = chart.getAxisLeft();
        leftAxis.setTextColor(Color.BLACK);
        leftAxis.setAxisMaximum(30f);
        leftAxis.setAxisMinimum(0f);
        leftAxis.setDrawGridLines(true);
        //右y轴配置
        YAxis rightAxis = chart.getAxisRight();
        rightAxis.setEnabled(false);
    }
    public static void addEntry(LineChart chart, float Concentration_data) {
        LineData data = chart.getData();
        YAxis leftAxis = chart.getAxisLeft();
        if (data != null) {
            ILineDataSet set = data.getDataSetByIndex(0);
            // set.addEntry(...); // can be called as well
            if (set == null) {
                set = createSet();
                data.aDDDataSet(set);
            }
            if(Concentration_data > -50 && Concentration_data < 100)
            {
                data.addEntry(new Entry(set.getEntryCount(), Concentration_data), 0);
                leftAxis.setAxisMaximum(data.getYMax() + 1);
                leftAxis.setAxisMinimum(data.getYMin() - 1);
            }
            data.notifyDataChanged();
            chart.notifyDataSetChanged();
            chart.setVisibleXRangeMaximum(80);
            chart.moveViewToX(data.getEntryCount());
        }
    }
    private static LineDataSet createSet() {
        LineDataSet set = new LineDataSet(null, "Dynamic Data");
        set.setAxisDependency(YAxis.AxisDependency.LEFT);
        set.setColor(Color.BLACK);
        set.setCircleColor(Color.RED);
        set.setLineWidth(2f);
        set.setCircleRadius(4f);
        set.setFillAlpha(65);
        set.setFillColor(ColorTemplate.getHoloBlue());
        set.setHighLightColor(Color.rgb(244, 117, 117));
        set.setValueTextColor(Color.RED);
        set.setValueTextSize(9f);
        set.setDrawValues(true);
        return set;
    }
   在需要折线图的activity中使用方法如下:
package com.example.beebird;
import java.util.Random;
//引用自己添加
public class MainActivity extends AppCompatActivity {
    
    private LineChart chart;
    private static Thread chartThread;//画图线程
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        chart = (LineChart) findViewById(R.id.mChart);//获取对象
        chart_util.chart_init(chart);//初始化折线图
        startChart();//启动画图线程
    }
    private void startChart() {
        chartThread = new Thread(new Runnable() {
            @Override
            public void run () {
                Random random = new Random();//默认构造方法
                while (true) {
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    float temp_float = (float)((random.nextFloat())*0.2) + 5;//产生一个5.0-5.2的随机数
                    chart_util.addEntry(chart,temp_float);//添加数据点
                }
            }
        });
        
        chartThread.start();
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
}
   在需要动态添加数据的位置使用“addEntry(datatest1);”代码,
   datatest1为float类型的数据。
   效果如下图所示

在这里插入图片描述


作者:qq_38771744


--结束END--

本文标题: Android 使用MPAndroidChart:v3.1.0绘制动态折线图

本文链接: https://lsjlt.com/news/29146.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android 使用MPAndroidChart:v3.1.0绘制动态折线图
    工作需要绘制一张可动态添加的折线图,经过筛选,选择MPAndroidChart:v3.1.0。 **使用方法:** 1、添加bui...
    99+
    2022-06-06
    折线图 mpandroidchart 动态 Android
  • Vue+Echarts实现绘制动态折线图
    目录1 引入Echarts1.1 安装1.2 引入1.3 基本使用2 动态折线图2.1 基本折线图2.2 动态折线图补充1 引入Echarts 1.1 安装 使用如下命令通过 npm...
    99+
    2023-03-19
    Vue Echarts绘制动态折线图 Vue Echarts绘制折线图 Vue Echarts 折线图 Vue Echarts
  • 怎么使用Android LineChart绘制折线图
    这篇文章主要介绍“怎么使用Android LineChart绘制折线图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Android LineChart绘制折线图”文章能帮...
    99+
    2023-07-05
  • 怎么使用Vue+Echarts实现绘制动态折线图
    今天小编给大家分享一下怎么使用Vue+Echarts实现绘制动态折线图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1 引入...
    99+
    2023-07-05
  • 使用python绘制折线图
    前言 最近在完成一篇气象预报的论文,涉及到深度学习与气象绘图。我觉得还是有必要写一下我在这个过程中的一些经验总结,借此机会与各位同道交流。 一、基础命令 在我们使用深度学习时,肯定会用到绘图命令,绘制loss与val_loss等等,以此查看...
    99+
    2023-09-22
    python 开发语言
  • WPF+ASP.NETSignalR实现动态折线图的绘制
    目录什么是SignalRSignalR做了什么封装与集成SignalR用途官方网址和源码示例截图服务端项目创建SignalR服务端业务集成SignalR服务端配置客户端项目创建客户端...
    99+
    2023-01-03
    WPF 动态折线图 WPF 折线图 WPF SignalR 折线图
  • python使用matplotlib绘制折线图
    前言: 我的python学习也告一段落了。不过有些,方法还是打算总结一下和大家分享。我整理了使用matplotlib绘制折线图的一般步骤,按照这个步骤走绘制折线图一般都没啥问题。其实...
    99+
    2024-04-02
  • Android怎么绘制双折线图
    本篇内容主要讲解“Android怎么绘制双折线图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android怎么绘制双折线图”吧!自定义View实现双折线图,可点击,点击后带标签描述,暂未实现拖...
    99+
    2023-06-29
  • Android图表库HelloChart绘制多折线图
    本文实例为大家分享了Android图表库HelloChart绘制多折线图的具体代码,供大家参考,具体内容如下 一、效果图 二、实现步骤 1.添加依赖库 compile 'com.g...
    99+
    2024-04-02
  • Android绘制双折线图的方法
    本文实例为大家分享了Android绘制双折线图的具体代码,供大家参考,具体内容如下 自定义View实现双折线图,可点击,点击后带标签描述,暂未实现拖动的功能,实现效果如下: 代码如...
    99+
    2024-04-02
  • android绘制曲线和折线图的方法
    本文实例为大家分享了android绘制曲线和折线图的具体代码,供大家参考,具体内容如下 (曲线)  (折线) 1.CurveView.java package com....
    99+
    2024-04-02
  • 怎么用Android的HelloChart绘制多折线图
    本文小编为大家详细介绍“怎么用Android的HelloChart绘制多折线图”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Android的HelloChart绘制多折线图”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-06-29
  • python使用matplotlib绘制折线图教程
    matplotlib简介 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。 ...
    99+
    2022-06-04
    教程 折线图 python
  • Origin绘制多折线图
    Origin的优势区间相对于python和R在于数据量大时处理方便 尤其是多维度、多线、多拟合 尝试复现上图 首先把20列数据复制过去 全选之后(ctrl+A),然后点Plot——Line 随便...
    99+
    2023-09-13
    python 开发语言
  • Android实现绘制折线图APP代码
    目录一.总体设计二.具体模块实现三.效果展示四.功能展望总结一.总体设计 1.寻找规律,公式化的生成坐标系。 2.将生成坐标系的关键参数设置为可自定义,从而可变的可以生成自己想要的坐...
    99+
    2024-04-02
  • 使用python怎么绘制一个折线图
    这篇文章将为大家详细讲解有关使用python怎么绘制一个折线图,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注...
    99+
    2023-06-14
  • 怎么使用matplotlib绘制天气折线图
    使用matplotlib绘制天气折线图的基本步骤如下:1. 导入所需的包和模块:```pythonimport matplotlib...
    99+
    2023-09-20
    matplotlib
  • 怎么使用Python的pyecharts绘制折线图
    本篇内容主要讲解“怎么使用Python的pyecharts绘制折线图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python的pyecharts绘制折线图”吧!折线图介绍折线图和柱状图...
    99+
    2023-07-02
  • 如何使用python的matplotlib绘制折线图
    这篇文章主要介绍“如何使用python的matplotlib绘制折线图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用python的matplotlib绘制折线图”文章能帮助大家解决问题。pl...
    99+
    2023-07-02
  • Android LineChart绘制折线图的示例详解
    1.首先在 build.gradle 里导入包 implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'&n...
    99+
    2023-03-24
    Android LineChart绘制折线图 Android LineChart折线图 Android LineChart
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作