android使用achartengine 实现折线图
折线图的实现分为下边几个步骤:
1、第一步:数据的准备
XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset();
XYSeries series1 = new XYSeries("第一条线");
series1.add(1, 7);
series1.add(2, 9);
series1.add(3,12);
series1.add(4, 5);
mDataset.addSeries(series1);
XYSeries series2 = new XYSeries("第二条线");
series2.add(1, 3);
series2.add(2, 8);
series2.add(3, 7);
series2.add(4, 4);
mDataset.addSeries(series2);
第二、步是描绘器的设置即XYMultipleSeriesRenderer的实现
这个主要实现的是坐标轴的绘制包括,字体大小,坐标轴的刻度的设置
例如 XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); //设置图表的X轴的当前方向 mRenderer.setOrientation(XYMultipleSeriesRenderer.Orientation.HORIZONTAL);
mRenderer.setXTitle("日期");//设置为X轴的标题
mRenderer.setYTitle("温度");//设置y轴的标题
mRenderer.setAxisTitleTextSize(20);//设置轴标题文本大小
mRenderer.setChartTitle("温度走势图");//设置图表标题
mRenderer.setChartTitleTextSize(30);//设置图表标题文字的大小
mRenderer.setLabelsTextSize(18);//设置标签的文字大小
mRenderer.setLegendTextSize(20);//设置图例文本大小
mRenderer.setPointSize(10f);//设置点的大小
mRenderer.setYAxisMin(0);//设置y轴最小值是0
mRenderer.setYAxisMax(15);
mRenderer.setYLabels(10);//设置Y轴刻度个数(貌似不太准确)
mRenderer.setXAxisMax(5);
mRenderer.setShowGrid(true);//显示网格
//将x标签栏目显示如:1,2,3,4替换为显示1月,2月,3月,4月
mRenderer.addXTextLabel(1, "1月");
mRenderer.addXTextLabel(2, "2月");
mRenderer.addXTextLabel(3, "3月");
mRenderer.addXTextLabel(4, "4月");
mRenderer.setXLabels(0);//设置只显示如1月,2月等替换后的东西,不显示1,2,3等
mRenderer.setMargins(new int[] { 20, 30, 15, 20 });//设置视图位置
第三步:折线图线条的设置
XYSeriesRenderer r = new XYSeriesRenderer();//(类似于一条线对象)
r.setColor(Color.BLUE);//设置颜色
r.setPointStyle(PointStyle.CIRCLE);//设置点的样式
r.setFillPoints(true);//填充点(显示的点是空心还是实心)
r.setDisplayChartValues(true);//将点的值显示出来
r.setChartValuesSpacing(10);//显示的点的值与图的距离
r.setChartValuesTextSize(25);//点的值的文字大小
// r.setFillBelowLine(true);//是否填充折线图的下方
// r.setFillBelowLineColor(Color.GREEN);//填充的颜色,如果不设置就默认与线的颜色一致
r.setLineWidth(3);//设置线宽
mRenderer.addSeriesRenderer(r);
XYSeriesRenderer rTwo = new XYSeriesRenderer();//(类似于一条线对象)
rTwo.setColor(Color.GRAY);//设置颜色
rTwo.setPointStyle(PointStyle.CIRCLE);//设置点的样式
rTwo.setFillPoints(true);//填充点(显示的点是空心还是实心)
rTwo.setDisplayChartValues(true);//将点的值显示出来
rTwo.setChartValuesSpacing(10);//显示的点的值与图的距离
rTwo.setChartValuesTextSize(25);//点的值的文字大小
// rTwo.setFillBelowLine(true);//是否填充折线图的下方
// rTwo.setFillBelowLineColor(Color.GREEN);//填充的颜色,如果不设置就默认与线的颜色一致
rTwo.setLineWidth(3);//设置线宽
mRenderer.addSeriesRenderer(rTwo);
第四步:生成图view
GraphicalView view = ChartFactory.getLineChartView(this, mDataset, mRenderer);
view.setBackgroundColor(Color.BLACK);
android使用achartengine 实现折线图的更多相关文章
- Android 使用 MPAndroidChart 实现折线图
Android 使用 MPAndroidChart 实现折线图 做Android项目的时候用到了折线图,不光折线图,还可能遇到很多的图表需要展示渲染,自己手画的话那好玩了,今天使用MPAndroidC ...
- Android图表引擎AChartEngine之折线图使用
最近在帮老师做一个课题,其中app端需要显示折线图以便直观地看数据波动,上网查了些资料后发现了这款图标引擎,另外感谢李坤老师的博客,帮助很大. 废话不多说,下面写代码. 一.AChartEngine是 ...
- Android AChartEngine 去除折线图黑边
通常使用AChartEngine画出的折线图,如果背景不是黑色,则会在折线图的坐标轴旁边出现黑边,如图所示: 试了好多设置,最后终于发现,去除黑边的设置是: mRenderer.setMarginsC ...
- AChartEngine 安卓折线图 柱形图等利器
http://www.eoeandroid.com/thread-548233-1-6.html 最近公司项目中要用到折线图,状态类型的图标要用到折线图,柱形图等,并且能够动态显示,在网上找了许多de ...
- achartengine之折线图
问题在文章的最后,大致说来就是折线图,如果点的个数大于3个的时候,不是所有的点都显示对应的值的,这是为什么呢,本来以为是小问题,但两天了还没找到原因) 将前两天的折线图代码做了小量修改,形成一个类似于 ...
- Android自定义控件 -Canvas绘制折线图(实现动态报表效果)
有时候我们在项目中会遇到使用折线图等图形,Android的开源项目中为我们提供了很多插件,但是很多时候我们需要根据具体项目自定义这些图表,这一篇文章我们一起来看看如何在Android中使用Canvas ...
- AChartEngine折线图实例
最近做项目要用到图表,在网上找相关的解决方案找了很久,搜到最多的就是这个框架,所以就开始研究下怎么使用,首先研究的就是折线图,如是做了一个实例. AChartEngine下载地址:http://cod ...
- Android - 折线图
使用Android的canvas,画折线图:代码为: package spt.view; import android.annotation.SuppressLint; import android. ...
- Android自定义折线图
老师布置了个作业:http://www.cnblogs.com/qingxu/p/5316897.html 作业中提到的 “玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动.” ...
随机推荐
- bzoj1954 The xor-longest path
Description 给定一棵n个点的带权树,求树上最长的异或和路径 Input The input contains several test cases. The first line of ...
- python开发_difflib字符串比较
在python的difflib中 HtmlDiff:比较后以html方法展示 我们比较的是字符串: 'hello world!' 和 'hElLO Wor2d!' 具体代码: from difflib ...
- [转]使用popBackStack()清除Fragment
Clear back stack using fragments up vote88down votefavorite 27 I ported my Android app to honeycomb ...
- Codeforces Round #299 (Div. 2) A. Tavas and Nafas 水题
A. Tavas and Nafas Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/535/pr ...
- hihocoder编程收割赛20
hihocoder编程收割赛20 hihocoder1542 : 无根数变有根树 hihocoder1542 思路: 树的遍历 ac代码: // hihocompete20_01.cpp : 定义控制 ...
- PAT甲级1014. Waiting in Line
PAT甲级1014. Waiting in Line 题意: 假设银行有N个窗口可以开放服务.窗前有一条黄线,将等候区分为两部分.客户要排队的规则是: 每个窗口前面的黄线内的空间足以包含与M个客户的一 ...
- CAShapeLayer实现音量大小动态改变
我是效果图 实现如图这效果一般会直接通过多张图进行切换进行完成.但这样的处理,会浪费App的资源存储空间,而且效率也不高.那么今天我们用CAShapeLayer实现以下吧. 拆分: 1.一个椭圆 2. ...
- 如何在Ubuntu中用firefox浏览器查看chm文档?
首先下载这插 件:在firefox中点击“工具”->“附加软件”->“扩展”,在firefix扩展网页下搜索“"chmfox" 然后安装,重启后就可以了.
- HDU 4704 Sum (2013多校10,1009题)
Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submi ...
- Singleton 单例模式(懒汉方式和饿汉方式)
单例模式的概念: 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 关键点: 1)一个类只有一个实例 这是最基本 ...