AchartEngine制作图表–>折线图,柱状图:
下载achartengine-1.1.0.jar
http://download.csdn.net/detail/csdnadcode/7771691
http://download.csdn.net/detail/u011247387/8013717
Android AchartEngine,这是为Android应用而设计的绘图工具库,能够支持多种图表类型。
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对象:用于存储一条线的数据信息
首先,将AchartEngine的第三讲jar包导入到自己的项目当中去,项目当中我用的是第二种方法来绘制图表。布局文件很简单,就是一个简单的线性布局,以后作为添加GraphicalView的布局。
然后,就是在代码里面进行设置:
// 折线图
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.X);
// xyRenderer.setPointStyle(PointStyle.TRIANGLE);
// xyRenderer.setPointStyle(PointStyle.SQUARE);
// xyRenderer.setPointStyle(PointStyle.POINT);
// xyRenderer.setPointStyle(PointStyle.DIAMOND);
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.setBarSpacing(0.5f);//柱子间宽度
// 将要绘制的点添加到坐标绘制中
renderer.addSeriesRenderer(xyRenderer);
// 折线图
LinearLayout linearlayout = (LinearLayout) findViewById(R.id.chart_ll);
// GraphicalView view = ChartFactory.getBarChartView(this, dataset, renderer,Type.STACKED);
GraphicalView view = ChartFactory.getLineChartView(this, dataset, renderer);
linearlayout.addView(view, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
}
在MainActivity调用:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initviews();
}
activity_main布局:
GraphicalView view = ChartFactory.getBarChartView(this, dataset, renderer,Type.STACKED);
添加柱体之间的距离,其他需要的直接修改属性设置:
renderer.setBarSpacing(0.5f);//柱子间宽度
参考资料:
http://blog.csdn.net/tyk0910/article/details/50037701
安卓图表引擎AChartEngine(一) - 简介
http://blog.csdn.net/lk_blog/article/details/7645509
安卓图表引擎AChartEngine(二) - 示例源码概述和分析
http://blog.csdn.net/lk_blog/article/details/7642751
安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
http://blog.csdn.net/lk_blog/article/details/7645668
安卓图表引擎AChartEngine(四) - 源码示例嵌入Acitivity中的折线图
http://blog.csdn.net/lk_blog/article/details/7645665
安卓图表引擎AChartEngine(五) - Render和Dataset参数介绍
http://blog.csdn.net/lk_blog/article/details/7645661
安卓图表引擎AChartEngine(六) - 框架源码结构图
http://blog.csdn.net/lk_blog/article/details/7645671