AChartEngine超简单实例
其实无非就在做三件事
- 1.添加数据进图标
- 2.线或条等设置
- 3.制作成什么表。仅此而已
package com.zsz.develop.mychart02;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import java.util.Random;
/**
* Created by shengzhong on 2015/7/29.
*/
public class ShowExamActivity extends Activity{
private LinearLayout llChart;
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.show_exam_activity);
// 1, 构造显示用渲染图
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
// 2,进行显示
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
// 2.1, 构建数据
Random r = new Random();
for (int i = 0; i < 2; i++) {
XYSeries series = new XYSeries("test" + (i + 1));
// 填充数据
for (int k = 0; k < 10; k++) {
// 填x,y值
series.add(k, 20 + r.nextInt() % 100);
}
// 需要绘制的点放进dataset中
dataset.addSeries(series);
}
// 3, 对点的绘制进行设置
XYSeriesRenderer xyRenderer = new XYSeriesRenderer();
// 3.1设置颜色
xyRenderer.setColor(Color.BLUE);
// 3.2设置点的样式
xyRenderer.setPointStyle(PointStyle.SQUARE);
// 3.3, 将要绘制的点添加到坐标绘制中
renderer.addSeriesRenderer(xyRenderer);
// 3.4,重复 1~3的步骤绘制第二个系列点
xyRenderer = new XYSeriesRenderer();
xyRenderer.setColor(Color.RED);
xyRenderer.setPointStyle(PointStyle.CIRCLE);
renderer.addSeriesRenderer(xyRenderer);
// Intent intent = new LinChart().execute(this);
// Intent intent = ChartFactory
// .getLineChartIntent(this, dataset, renderer);
GraphicalView graphicalView = ChartFactory.getLineChartView(this, dataset, renderer);
llChart= (LinearLayout) findViewById(R.id.llChart);
llChart.addView(graphicalView);
// startActivity(intent);
}
}
详细配置。
上面的配置只配置了几个基础的,还要进行更多配置才能使得图标更加简单通熟易懂。
- XYSeries: 最常用的数据结构,主要包括一系列的double型(x,y)点对及一个名称(title)。
- XYValueSeries:包括一系列的(x,y,value)点对及一个名称(title)。
- XYMultipleSeriesDataset:包含一系列XYSeries,是最终的数据结构
- TimeSeries:与XYSeries类似,x变为Date型,可以转化为XYSeries。
- CategorySeries:与XYSeries类似,x变为string型,可以转化为XYSeries。
MultipleCategorySeries:一系列CategorySeries。
XYSeriesRenderer,impleSeriesRenderer、用于设置每张图中每一个序列的绘制方法。- XYMultipleSeries,RendererDefaultRenderer用于设置整张图的绘制格式。
XYMultipleSeriesRenderer.setAxisTitleTextSize
详细配置
- 1.修改背景色或设置背景图片:
背景色设置需要设置两项:setMarginsColor(设置四边颜色)以及setBackgroundColor(设置中间背景色) - 设置背景图片:
http://blog.csdn.net/kmyhy/article/details/6590294
- setAxisTitleTextSize(16);// 设置坐标轴标题文本大小
- setChartTitleTextSize(20); // 设置图表标题文本大小
- setLabelsTextSize(15); // 设置轴标签文本大小
- setLegendTextSize(15); // 设置图例文本大小
- renderer.setChartTitle( “个人收支表”);//设置柱图名称
- renderer.setXTitle( “名单” );//设置X轴名称
- renderer.setYTitle( “金额” );//设置Y轴名称
- renderer.setXAxisMin(0.5);//设置X轴的最小值为0.5
- renderer.setXAxisMax(5.5);//设置X轴的最大值为5
- renderer.setYAxisMin(0);//设置Y轴的最小值为0
- renderer.setYAxisMax(500);//设置Y轴最大值为500
- renderer.setDisplayChartValues(true);//设置是否在柱体上方显示值
- renderer.setShowGrid(true);//设置是否在图表中显示网格
- renderer.setXLabels(0);//设置X轴显示的刻度标签的个数
- 如果想要在X轴显示自定义的标签,那么首先要设置renderer.setXLabels(0); 如果不设置为0,那么所设置的Labels会与原X坐标轴labels重叠
其次我们要renderer.addTextLabel()循环添加
eg:for(int i=0;i<13;i++)
{
}renderer.addTextLabel(i+1,years[i]); //循环添加Xlabel其中显示的label放在years数组中
- renderer.setXLabelsAlign(Align.RIGHT);//设置刻度线与X轴之间的相对位置关系
- renderer.setYLabelsAlign(Align.RIGHT);//设置刻度线与Y轴之间的相对位置关系
- renderer.setZoomButtonsVisible(true);//设置可以缩放
- renderer.setPanLimits(newdouble[] { 0, 20, 0, 140 });//设置拉动的范围
- renderer.setZoomLimits(newdouble[] { 0.5, 20, 1, 150 });//设置缩放的范围
- renderer.setRange(newdouble[]{0d, 5d, 0d, 100d}); //设置chart的视图范围
- renderer.setFitLegend(true);// 调整合适的位置
- renderer.setClickEnabled(true)//设置是否可以滑动及放大缩小;
Dataset和Render参数介绍:
http://blog.csdn.net/lk_blog/article/details/7645661ChartView.repaint();是重新绘图的命令
- renderer.setMargins(new int[] { 70, 70, 100, 70 });//设置图表的外边框(上/左/下/右)