AchartEngine制作图表

简介: 最近公司项目运用到了关于图表这一块的知识,用到了Android AchartEngine,这是为Android应用而设计的绘图工具库,能够支持多种图表类型。 这里有比较详细的关于AchartEngine的介绍与使用http://blog.csdn.net/lk_blog/article/details/7645509这里主要谈的是自己对AchartEngine的一些理解与使用心得。

最近公司项目运用到了关于图表这一块的知识,用到了Android AchartEngine,这是为Android应用而设计的绘图工具库,能够支持多种图表类型。

这里有比较详细的关于AchartEngine的介绍与使用http://blog.csdn.net/lk_blog/article/details/7645509

这里主要谈的是自己对AchartEngine的一些理解与使用心得。

1、认识AchartEngine

如图所示,通过achartengine.ChartFactory调用数据集XYMultipleSeriesDataset对象与XYMultipleSeriesRenderer对象来设置好需要绘制的数据以及绘制的方法,然后调用绘制方法来绘制图表。AchartEngine提供了两种绘制图表的方法:
ChartFactory.getXXXChartIntent(Context context,XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset,):直接新建一个Activity全屏显示生成的图表。
ChartFactory.getXXXChartView(Context context,XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset,):生成一个GraphicalView,然后在需要的布局文件中Add进去即可。
ChartFactory有多种api,通过这些api调用来决定自己需要的图表。

1.XYMultipleSeriesRenderer对象:包含一系列XYSeriesRender,用来设置图表的整体风格,整体样式
2.XYMultipleSeriesDataset对象:包含一系列XYSeries,用于数据的存放,提供绘制的点集合的数据
3.XYSeriesRenderer对象:用来设置一条线条的风格,颜色啊,粗细之类的
4.XYSeries对象:用于存储一条线的数据信息

2、使用AchartEngine
首先将AchartEngine的第三讲jar包导入到自己的项目当中去,项目当中我用的是第二种方法来绘制图表。布局文件很简单,就是一个简单的线性布局,以后作为添加GraphicalView的布局。

 <LinearLayout
            android:id="@+id/sensors_data_chart_ll"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_margin="10dp"
            android:orientation="horizontal" >
 </LinearLayout>

然后就是在代码里面进行设置:

private void initviews() {

        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        // 构造数据
        Random random = new Random();
        XYSeries series = new XYSeries("折线一");
        for (int i = 1; i < 10; i++) {
            series.add(i, random.nextInt(100));
        }
        // 需要绘制的点放在dataset当中
        dataset.addSeries(series);
        // 对点的绘制进行描述
        XYSeriesRenderer xyRenderer = new XYSeriesRenderer();

        // 设置颜色
        xyRenderer.setColor(Color.BLUE);
        // 设置点的风格
        xyRenderer.setPointStyle(PointStyle.CIRCLE);
        // 设置空心实心
        xyRenderer.setFillPoints(true);
        // 设置XY轴名称
        renderer.setXTitle("时间");
        renderer.setYTitle("温度");
        // 设置标题
        renderer.setChartTitle("折线图");
        // 设置Y轴最大值
        renderer.setYAxisMax(100);
        renderer.setXAxisMax(10);
        renderer.setXAxisMin(0);
        renderer.setYAxisMin(0);
        // 设置XY轴颜色
        renderer.setAxesColor(Color.BLACK);
        renderer.setLabelsColor(Color.BLACK);
        // 设置XY轴显示
        renderer.setYLabels(10);
        renderer.setXLabels(10);
        // 设置 是否显示图例
        renderer.setShowLegend(true);
        // 设置不显示放大缩小图标
        renderer.setZoomEnabled(false);
        // 设置是否支持图表缩放
        renderer.setPanEnabled(false, false);
        // 设置是否可点击
        renderer.setClickEnabled(false);
        // 是否显示网格
        renderer.setShowGrid(true);
        // 设置空白区的颜色
        renderer.setMarginsColor(Color.WHITE);
        renderer.setBackgroundColor(getResources().getColor(R.color.white));
        // 设置坐标轴文字颜色
        renderer.setXLabelsColor(Color.BLACK);
        renderer.setYLabelsColor(0, Color.BLACK);
        // 刻度线与刻度标注之间的相对位置关系
        renderer.setXLabelsAlign(Align.CENTER);
        // 刻度线与刻度标注之间的相对位置关系
        renderer.setYLabelsAlign(Align.RIGHT);
        renderer.setZoomButtonsVisible(false);// 是否显示放大缩小按钮
        renderer.setMargins(new int[] { 50, 50, 20, 20 });// 设置图表的外边框(上/左/下/右)
        renderer.setAxisTitleTextSize(20);// 设置轴标题文字的大小
        renderer.setChartTitleTextSize(30);// 设置整个图表标题文字的大小
        renderer.setLabelsTextSize(15);// 设置轴刻度文字的大小
        renderer.setLegendTextSize(15);// 设置图例文字大小
        renderer.setPointSize(5);// 设置点的大小(图上显示的点的大小和图例中点的大小都会被设置)
        // 将要绘制的点添加到坐标绘制中
        renderer.addSeriesRenderer(xyRenderer);
        // 折线图
        LinearLayout linearlayout = (LinearLayout) findViewById(R.id.sensors_data_chart_ll);
        GraphicalView view = ChartFactory.getLineChartView(this, dataset,
                renderer);
        linearlayout.addView(view, LayoutParams.FILL_PARENT,
                LayoutParams.FILL_PARENT);

    }

注解已经很详细,其实都是一些属性的设置,最后添加在对应的布局当中即可,效果图下:
这里写图片描述

项目中运用到的是AchartEngine制作的柱状图,属性设置都差不多,效果图如下:
这里写图片描述

目录
相关文章
|
JSON JavaScript 前端开发
ECharts图表制作
ECharts图表制作
99 0
|
5月前
|
数据可视化 数据挖掘 数据处理
R语言高级可视化技巧:使用Plotly与Shiny制作互动图表
【8月更文挑战第30天】通过使用`plotly`和`shiny`,我们可以轻松地创建高度互动的数据可视化图表。这不仅增强了图表的表现力,还提高了用户与数据的交互性,使得数据探索变得更加直观和高效。本文仅介绍了基本的使用方法,`plotly`和`shiny`还提供了更多高级功能和自定义选项,等待你去探索和发现。希望这篇文章能帮助你掌握使用`plotly`和`shiny`制作互动图表的技巧,并在你的数据分析和可视化工作中发挥更大的作用。
|
4月前
|
存储 数据可视化 UED
Axure中继器动态数据图表制作
在Axure RP中,中继器(Repeater)是一个非常强大的工具,它允许设计者动态地展示和交互数据,进而创建各种复杂的数据可视化图表,如柱状图、条形图、堆叠图、散点图和对比图。以下将详细介绍如何使用中继器来设计这些图表。
72 16
Axure中继器动态数据图表制作
|
5月前
Excel 进度图表制作
Excel 进度图表制作
52 0
|
8月前
|
JavaScript 前端开发 定位技术
用R语言制作交互式图表和地图
用R语言制作交互式图表和地图
表格制作
3.6表格制作 3.6.1创建表格 1)使用虚拟表格: 最大可以插入0列,8行 2)使用“插入表格”对话框: 最大可以插入,63列,32767行 3)手动绘制表格:横线,竖线,斜线 4)调用Excel电子表格 5)使用“快速表格”功能创建表格:样式和内容预设 6)文字可以转换成表格,表格也可以转换为文字 3.6.2 编辑表格 1、选择操作区域 1选择单个单元格 2选择连续的单元格(Shirt) 3选择分散的单元格(Ctrl) 4选择一行 5选择一列 6选择整个表格 2、调整行高与列宽 1将光标插入点定位到某个单元格内,切换到“表格工具/布局”选项卡,在“单元格大小”组
|
JavaScript 前端开发 BI
ECharts制作报表模板
使用方法:百度搜素ECharts,进入它的官网,有对应的文档以及实例,直接选择自己相应的实例,粘贴到你的代码中,按照它需要的数据结构将数据传递过去,就会出现你想要的优美报表。
|
JavaScript 数据可视化 搜索推荐
【Axure教程】中继器结合echarts生成可视化图表
【Axure教程】中继器结合echarts生成可视化图表
R常用图表网站
R常用图表网站
99 0
|
Web App开发 数据可视化 前端开发
Bokeh 这可视化图表做的,也太好看了吧!
Python交互式可视化库Bokeh在现代web浏览器中支持大型数据集的高性能可视化表示。Bokeh 的目标是使用 D3.js 样式提供优雅,简洁新颖的图形化风格,同时提供大型数据集的高性能交互功能。
Bokeh 这可视化图表做的,也太好看了吧!