android绘图借用achartEngine分析

1.为什么选择aChartEngine给大家讲呢?

因为在android平台上难免会遇到一些图表的处理,aChartEngine是个易学易用的图表库并且功能强大。

2.AChartEngine能做什么?

在我们想绘制一些曲线的时候AChartEngine的功能就体现了出来,我们不用在绘制表格,坐标等等信息,这里也包含放大和缩小。借用AChartEngine的调用接口提高我们的开发速度。它是一个图表库,所以它的功能和图表是分不开的,它主要功能是用图表的方式来显示数据,适用于数据分析,报表显示,当然图表能表达的其他功能它都应该有。下面是常见的图表效果可以在code google上查看:https://code.google.com/p/achartengine/

3.我们怎么用AchartEngine?

3.1 aChartEngine内部类与类的关系结构

XYMultipleSeriesDataset   数据集,用来绘制N条曲线,一条曲线是seriesdata或CategorySeries,同时一条曲线初始化完毕后,可添加到数据集中。
XYMultipleSeriesRenderer 描绘集,一条曲线对应一种描绘方法,同时一条曲线的描绘类是XYSeriesRenderer,可添加到描绘集。
GraphicalView mChartView 填充位置

3.2 具体功能使用

1.    修改背景色或设置背景图片
背景色设置需要设置两项:setMarginsColor(设置四边颜色)以及setBackgroundColor(设置中间背景色)
设置背景图片。
2.    setAxisTitleTextSize(16);// 设置坐标轴标题文本大小
3.    setChartTitleTextSize(20); // 设置图表标题文本大小
4.    setLabelsTextSize(15); // 设置轴标签文本大小
5.    setLegendTextSize(15); // 设置图例文本大小
6.    renderer.setChartTitle( "个人收支表");//设置柱图名称
7.    renderer.setXTitle( "名单" );//设置X轴名称
8.    renderer.setYTitle( "金额" );//设置Y轴名称
9.    renderer.setXAxisMin(0.5);//设置X轴的最小值为0.5
10.  renderer.setXAxisMax(5.5);//设置X轴的最大值为5
11.  renderer.setYAxisMin(0);//设置Y轴的最小值为0
12.  renderer.setYAxisMax(500);//设置Y轴最大值为500
13.  renderer.setDisplayChartValues(true);//设置是否在柱体上方显示值
14.  renderer.setShowGrid(true);//设置是否在图表中显示网格
15.  renderer.setXLabels(0);//设置X轴显示的刻度标签的个数
16.  如果想要在X轴显示自定义的标签,那么首先要设置renderer.setXLabels(0);其次我们要renderer.addTextLabel()循环添加
17.  renderer.setXLabelsAlign(Align.RIGHT);//设置刻度线与X轴之间的相对位置关系
18.  renderer.setYLabelsAlign(Align.RIGHT);//设置刻度线与Y轴之间的相对位置关系
19.  renderer.setZoomButtonsVisible(true);//设置可以缩放
20.  renderer.setPanLimits(newdouble[] { 0, 20, 0, 140 });//设置拉动的范围
21.  renderer.setZoomLimits(newdouble[] { 0.5, 20, 1, 150 });//设置缩放的范围
22.  renderer.setRange(newdouble[]{0d, 5d, 0d, 100d}); //设置chart的视图范围
23.  renderer.setFitLegend(true);// 调整合适的位置
24.  renderer.setClickEnabled(true)//设置是否可以滑动及放大缩小;
25.  Dataset和Render参数介绍:参考手册
26.ChartView.repaint();是重新绘图的命令
27.关于AChartEngine的点击事件,双击事件,滑动事件均可以用自定义事件解决,但是需要注意的是先设置renderer.setClickEnabled(false);
28.若是添加图形后变形,可以设置 renderer.setInScroll(true);解决,来自于@gupengno1
29.renderer.setGridColor();//设置网格颜色
30.renderer.setAxesColor();//设置坐标轴颜色

2 保证render的数目与dataSet的数目对应即可
参照:
	/***************************************************************
	 * 绘图初始化
	 */
	private static void renderInit(){
		mRenderer.setChartTitle( "温湿度" );
        mRenderer.setXTitle( "日期" );
        mRenderer.setYTitle( "温湿度值" );
        mRenderer.setShowGrid(true);
        mRenderer.setAxisTitleTextSize(16);
        mRenderer.setLabelsTextSize(15);
        mRenderer.setLegendTextSize(15);
        mRenderer.setPointSize(5f);
        mRenderer.setYAxisMin(0);
        mRenderer.setYAxisMax(100);
        XYSeriesRenderer r = new XYSeriesRenderer();
        r = new XYSeriesRenderer();
        r.setPointStyle(PointStyle.CIRCLE);
        r.setColor(Color.GREEN);
        r.setFillPoints(true);
        mRenderer.addSeriesRenderer(r);
        mRenderer.setAxesColor(Color.DKGRAY);
        mRenderer.setLabelsColor(Color.LTGRAY);
        mRenderer.setFitLegend(true);
        
	}
	public static void layoutInit(LinearLayout layout){
		
    	renderInit();
    	//LinearLayout layout = (LinearLayout) findViewById(R.id.env_layout_figure);
      	String seriesTitle = "Series " + (mDataset.getSeriesCount() + 1);
		// create a new series of data
		CategorySeries series = new CategorySeries(seriesTitle);
		series.add(55);
		series.add(33);
		series.add(52);
		series.add(35);
		series.add(78);			
		mDataset.addSeries(series.toXYSeries());
		mChartView = ChartFactory.getLineChartView(gContext, mDataset, mRenderer);
		// enable the chart click events
		layout.addView(mChartView, new LayoutParams(LayoutParams.MATCH_PARENT,
		          LayoutParams.MATCH_PARENT));
	}




你可能感兴趣的:(achartengine)