基于开源框架AChartEnginee绘制图表表格,实现显示数据折线图,对比功能。效果图如下:

新建工程

通过Android studio新建项目,添加achartenginee.jar依赖。点击下载jar

初始化图表

数据集

根据需求设置多条曲线,一条曲线对应一个XYSeries实例

 series = new XYSeries(title);series2 = new XYSeries("123");// 创建一个数据集的实例,这个数据集将被用来创建图表mDataset = new XYMultipleSeriesDataset();// 将点集添加到这个数据集中mDataset.addSeries(series);mDataset.addSeries(series2);

属性样式

设置曲线样式,这里要注意,一条曲线执行一次如下设置,以顺序相互对应,否则将会报错:Datasetand renderer should not be null  andshould have the same number of series

XYSeriesRenderer r = new XYSeriesRenderer();// 设置图表中曲线本身的样式,包括颜色、点的大小以及线的粗细等r.setColor(color);r.setPointStyle(style);r.setFillPoints(fill);r.setLineWidth(3);renderer.addSeriesRenderer(r);

设置图表样式

// 有关对图表的渲染可参看api文档renderer.setApplyBackgroundColor(true);renderer.setBackgroundColor(getResources().getColor(R.color.black));renderer.setChartTitle(title);renderer.setChartTitleTextSize(20);renderer.setLabelsTextSize(19);// 设置坐标轴标签文字的大小renderer.setXTitle(xTitle);renderer.setYTitle(yTitle);renderer.setXAxisMin(xMin);renderer.setXAxisMax(xMax);renderer.setYAxisMin(yMin);renderer.setYAxisMax(yMax);//renderer.setYAxisAlign(Align.RIGHT, 0);//用来调整Y轴放置的位置,表示将第一条Y轴放在右侧renderer.setAxesColor(axesColor);renderer.setLabelsColor(labelsColor);renderer.setShowGrid(true);renderer.setGridColor(Color.GRAY);renderer.setXLabels(10);//若不想显示X标签刻度,设置为0 即可renderer.setYLabels(10);renderer.setLabelsTextSize(18);// 设置坐标轴标签文字的大小renderer.setXLabelsColor(labelsColor);renderer.setYLabelsColor(0, labelsColor);renderer.setYLabelsVerticalPadding(-5);renderer.setXTitle("");renderer.setYTitle("");renderer.setYLabelsAlign(Align.RIGHT);renderer.setAxisTitleTextSize(20);renderer.setPointSize((float) 1);renderer.setShowLegend(false);renderer.setFitLegend(true);renderer.setMargins(new int[] { 30, 45, 10, 20 });// 设置图表的外边框(上/左/下/右)//表格边框颜色renderer.setMarginsColor(getResources().getColor(R.color.cardio_bg_color));

显示数据

这里我们是模拟实时数据,通过handler递归调用不断获取新数据

Runnable runnable = new Runnable() {@Overridepublic void run() {ArrayList<Integer> datas = new ArrayList<Integer>();for (int i = 0; i < 1; i++) {datas.add(random.nextInt(2000)+500);}ArrayList<Integer> datas2 = new ArrayList<Integer>();for (int i = 0; i < 1; i++) {datas2.add(random.nextInt(2000)+500);}updateCharts(datas);updateChartsMoreLine(datas2);            handler.postDelayed(this, POINT_GENERATE_PERIOD);}};
protected void updateCharts(ArrayList<Integer> datas) {for (int addY : datas) {series.add(i, addY);i++;}if (i < MAX_POINT) {renderer.setXAxisMin(0);renderer.setXAxisMax(MAX_POINT);} else {renderer.setXAxisMin(series.getItemCount() - MAX_POINT);renderer.setXAxisMax(series.getItemCount());}chart.repaint();}
protected void updateChartsMoreLine(ArrayList<Integer> datas) {for (int addY : datas) {series2.add(i2, addY);i2++;}chart.repaint();}

想要源码的留下邮箱

Android 实时曲线图/折线图相关推荐

  1. echarts折线图怎么从y轴开始_基于echarts的双y轴实时更新折线图

    一款基于echarts的双y轴实时更新折线图效果,页面加载后开始自动更新数据并绘制对应的折线图,可以点击右上角的按钮:显示数据视图.刷新数据和将数据存储为png的图片. 查看演示 下载资源: 46 次 ...

  2. layui做折线图_绘制曲线图/折线图只需4步

    绘制曲线图/折线图只需4步 8390251284.gif 下载YJGraph文件拖入工程后 1.导入头文件 #import "YJGraphView.h" #import &quo ...

  3. Python基于周立功盒子接收特定报文信号并实时绘制折线图(二)

    Python基于周立功盒子接收特定报文信号并实时绘制折线图(二) 一.背景     根据在上一篇文件Python基于周立功盒子接收特定报文信号并实时绘制折线图(一)的基础上需要做一些优化,原因是,因为 ...

  4. Python基于周立功盒子接收特定报文信号并实时绘制折线图(一)

    Python基于周立功盒子接收特定报文信号并实时绘制折线图(一) 一.背景     为了节省成本,最大限度利用资源,放弃了用Vector的盒子,采用周立功盒子来做二次开发,以方便来进行压力测试 二.需 ...

  5. android时间轴折线图,echarts时间轴折线图

    当使用echarts折线图时,每个数据会打点,在数据量小的时候,美观又快捷,但是当数据量过大时,会非常的卡,以及不美观 例如: series: { symbol:'circle', } > EC ...

  6. android客户端动态折线图

    1.添加依赖 compile 'com.github.PhilJay:MPAndroidChart:v3.0.2' 2.在布局文件中添加RelativeLayout,相当于一个容器,目的是可以在界面动 ...

  7. android记账本折线图_Android自定义View - 仿支付宝月账单折线图

    前言 支付宝有个查看月账单的功能,最近一直在学习自定义View,于是就尝试着自己实现了一个类似的折线图. 下面是支付宝消费分析功能截图和自己实现的折线效果截图: 支付宝消费分析折线图.jpg 效果1. ...

  8. android 多个折线图 最佳视野,自定义View_撸一个多层折线图

    看到这个标题,可能有点发懵,啥叫多层折线图啊?这个是我自己取的名字,是因为那天我遇到了这样一个需求. UI图.png 呐!这还是一个宝塔型的折线图,根据常识,很容易就知道这里面的交互逻辑:一指多控.曾 ...

  9. Android studio 绘制折线图

    1.在项目的build.gridle里面的allprojects添加 maven { url "https://jitpack.io" } llprojects {reposito ...

最新文章

  1. 块代码编程---开始使用块代码
  2. linux c 函数 link symlink unlink 链接相关功能
  3. 如何避免fstab挂载故障问题
  4. AsyncHttpClient的连接池使用逻辑
  5. 微信昵称上标电话号码,实用的新玩法
  6. 20145120 《Java程序设计》实验一实验报告
  7. 实验一:端口扫描(X-scan)
  8. Matlab中CIC滤波器的应用
  9. 51单片机驱动TM1640实现多个LED灯控制
  10. matlab积分器,MATLAB_SIMULINK__积分器相关操作
  11. 【74HC595】STM32 74HC595驱动程序
  12. c#语言猜数字游戏,C#实现简易猜数字游戏
  13. 12星座谈恋爱:说分手,很容易
  14. 解决DedeCMS搜索结果每页显示10条无法修改方法
  15. 批量创建工作表并以本月日期命名——《超级处理器》应用
  16. RK3588 调试 phy
  17. 【C语言】转义字符\xhh和\ddd到底如何判断?被兔子个数支配的恐惧你也有吗?(每日小细节001)
  18. 一文读懂程序化交易算法交易量化投资高频交易统计利
  19. STM32_基础入门(三)_库函数按键实验
  20. 情绪分析,词性分析和词义消歧

热门文章

  1. java适配器模式例子_Java适配器模式
  2. 《农场电玩》-隐私政策
  3. 青春不过,几次世界杯,足球让我明白,努力的方向
  4. 自学一对一直播脚本开发可行吗?
  5. CSS设置滚动条样式(兼容IE)
  6. 虚拟机中Ubuntu 14的联网方式
  7. 联想最轻便便携式计算机,超轻薄 超时尚 超便携 联想首款便携本S10详细评测
  8. 压缩的原理和压缩软件的原理
  9. EasyUI入门(DataGrid)
  10. sql学习(4张表引发的50个sql问题,提供表与数据的搭建)-- 连载一