应用achartengine包画数据统计图之一————基础介绍及画TimeChart
2016-10-19 10:21
281 查看
本文将关注用achartengine包画出数据统计图(折线图+饼图)。
上图是使用achartengine画图的思路,从我的理解来说共需要两部分东西:
1.第一部分是数据相关(即图中XYSeries和XYMutipleSeriesDataset部分)。
XYseries是为XYchart封装内部数据,可以看成一系列坐标点(TimeChart中是Timeseries) 。要把你所要用来画图的数据存入这些结构中,并且要根据你所画的图的类型不同,将数据整理成特定的格式,例如若要画TimeChart,它的横轴所需的时间数据:年,月,日,时 都是有规定的。
2.第二部分是画图设置(即图中XYMutilpleSeriesRenderer和XYSeriesRenderer部分)。主要是设置所画统计图的线的颜色、点的形状、是否显示数据等等。
ChartFactory官方解释是“Utility methods for creating chart views or intents”,我的理解就是“画图的工厂”,你只需把以上两部分输入完成,ChartFactory就会完成剩下的画图工作。
因此,我们的主要任务就是琢磨怎么放数据+怎么进行图形设置。
一 画TimeChart(横坐标是日期时间的折线图)
下面是生成数据集(Dataset)的函数。titles中的每个元素是一条线的名字(titles中有几个元素就要画几条线);xValues是Date类型的链表,其元素作为横坐标——日期时间;yValues是double类型的链表,其元素作为纵坐标——对应日期的数据。
之后是生成XYMutilpleSeriesRenderer,即进行图形设置的函数。colors[]是线相应的颜色,PointStyle[]是点的风格,如Circle,Square等。
把数据都收集好之后,就可以画图了,下面是画图的代码。GraphicalView是一个View对象,getTimeChartView()函数得到一个这样的对象。
以上,就画出了TimeChart,截图如下:
转载http://www.cnblogs.com/water-drop/archive/2012/11/01/2750379.html
上图是使用achartengine画图的思路,从我的理解来说共需要两部分东西:
1.第一部分是数据相关(即图中XYSeries和XYMutipleSeriesDataset部分)。
XYseries是为XYchart封装内部数据,可以看成一系列坐标点(TimeChart中是Timeseries) 。要把你所要用来画图的数据存入这些结构中,并且要根据你所画的图的类型不同,将数据整理成特定的格式,例如若要画TimeChart,它的横轴所需的时间数据:年,月,日,时 都是有规定的。
2.第二部分是画图设置(即图中XYMutilpleSeriesRenderer和XYSeriesRenderer部分)。主要是设置所画统计图的线的颜色、点的形状、是否显示数据等等。
ChartFactory官方解释是“Utility methods for creating chart views or intents”,我的理解就是“画图的工厂”,你只需把以上两部分输入完成,ChartFactory就会完成剩下的画图工作。
因此,我们的主要任务就是琢磨怎么放数据+怎么进行图形设置。
一 画TimeChart(横坐标是日期时间的折线图)
下面是生成数据集(Dataset)的函数。titles中的每个元素是一条线的名字(titles中有几个元素就要画几条线);xValues是Date类型的链表,其元素作为横坐标——日期时间;yValues是double类型的链表,其元素作为纵坐标——对应日期的数据。
1 protected XYMultipleSeriesDataset buildDateDataset(String[] titles, List<Date[]> xValues, 2 List<double[]> yValues) { 3 XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 4 int length = titles.length; 5 for (int i = 0; i < length; i++) { 6 TimeSeries series = new TimeSeries(titles[i]); 7 Date[] xV = xValues.get(i); //画TimeChart横坐标需要为Date数据类型 8 double[] yV = yValues.get(i); 9 int seriesLength = xV.length; 10 for (int k = 0; k < seriesLength; k++) { 11 series.add(xV[k], yV[k]); 12 } 13 dataset.addSeries(series); 14 } 15 return dataset; 16 }
之后是生成XYMutilpleSeriesRenderer,即进行图形设置的函数。colors[]是线相应的颜色,PointStyle[]是点的风格,如Circle,Square等。
1 protected XYMultipleSeriesRenderer buildRenderer(int[] colors, PointStyle[] styles) { 2 XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer(); 3 renderer.setAxisTitleTextSize(16); //各种设置。。。。 4 renderer.setChartTitleTextSize(15); 5 renderer.setLabelsTextSize(15); 6 renderer.setLegendTextSize(15); 7 renderer.setPointSize(7f); 8 renderer.setMargins(new int[] { 40, 30, 15, 0 }); //设置图形四周的留白 9 int length = colors.length; 10 for (int i = 0; i < length; i++) { 11 XYSeriesRenderer r = new XYSeriesRenderer(); 12 r.setColor(colors[i]); 13 r.setPointStyle(styles[i]); 14 renderer.addSeriesRenderer(r); 15 } 16 return renderer; 17 }
把数据都收集好之后,就可以画图了,下面是画图的代码。GraphicalView是一个View对象,getTimeChartView()函数得到一个这样的对象。
1 private GraphicalView mChartView; 2 mChartView = ChartFactory.getTimeChartView(this,buildDateDataset(titles, dateList, values), 3 renderer, "M/d HH:mm"); 4 layout.removeAllViews(); //先remove再add可以实现统计图更新 5 6 layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, 7 LayoutParams.FILL_PARENT));
以上,就画出了TimeChart,截图如下:
转载http://www.cnblogs.com/water-drop/archive/2012/11/01/2750379.html
相关文章推荐
- 应用achartengine包画数据统计图之二————画PieChart(饼图)
- Excel在统计分析中的应用—第一章—统计基础与数据描述
- 高光谱遥感数据光谱特征的提取与应用---高光谱基础知识科普论文
- 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-UDA应用中使用IOC解偶数据连接环境
- 3款移动应用数据统计分析平台对比
- ORACLE基础学习-RMAN应用之(归档模式无备份,丢失数据文件的恢复)
- iOS应用数据存储的常用方式介绍
- Shiny应用基础(5):数据获取与响应
- 统计分析与数据挖掘所涉及的应用领域探讨
- HBase在数据统计应用中的使用心得
- 移动应用数据统计分析平台汇总
- 统计分析与数据挖掘所涉及的应用领域探讨
- C语言位段的应用:统计数据二进制格式中1的个数
- 【统计技术】数据挖掘在反欺诈中的应用
- 开发基础(一)C语言之数据介绍
- SQL Servr 2008空间数据应用系列一:空间信息基础
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- Neo4J图库的基础介绍(二)-图库开发应用
- WPF命令(Command)介绍、命令和数据绑定集成应用
- Spark修炼之道(基础篇)——Linux大数据开发基础:第一节、Linux介绍、安装及使用初步