由于项目需要,要用到图表显示,所以就上网查找了些资料,就找到了下面一张图,以及几个概念:
从图中可以看出,绘制一个图表,需要理解三个概念
1、ChartFactory
传入Renderer,Dataset的参数,然后用getXXXChartIntent(Context context,XYMutilpleSeriesRenderer,XYMutilpleSeriesDataset)方法进行图表的显示
2、XYMutilpleSeriesRenderer
用于进行绘制的设置,添加的Renderer对象,用于定义绘制的点集合设置,注意数量要和Dataset添加的XYseries一致!!!
3、XYMutilpleSeriesDataset
用于数据的存放,添加的XYseries对象,用于提供绘制的点集合的数据
下面是我学习之后的总结:
说白了,就三个东西,一个Intent,一个Renderer和一个Dataset。
Intent 就是要启动一个GraphicalActivity来显示图表用的,这个GraphicalActivity需要在manifest注册!
一般由 ChartFactory.get***ChartIntent获得,如下:
ChartFactory.getBarChartIntent(context, getBarDataset(),renderer, Type.DEFAULT);
Renderer 就是渲染器,设置图表显示的一些特征,比如图表的大小,标题,坐标轴的颜色,背景颜色等
DefaultRenderer renderer = new DefaultRenderer(); renderer.setBackgroundColor(Color.GRAY);// 背景颜色 renderer.setLabelsTextSize(25);// 标签文字大小 renderer.setChartTitle("手机系统");// 图表名称 renderer.setChartTitleTextSize(30);// 图表名称大小 renderer.setLegendTextSize(30);// 图标字体大小 renderer.setLegendHeight(100);// 图标文字距离底边的高度 renderer.setPanEnabled(false);//图表是否可以移动 renderer.setZoomEnabled(true);//图表是否可以缩放
Dataset 就是数据集,就是你自己要制作表的数据集
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); double[] data1 = { 19, 23, 23, 42, 25, 25, 17, 28, 39 }; double[] data2 = { 39, 43, 13, 12, 15, 35, 37, 18, 19 }; for (int i = 0; i < 2; i++) { CategorySeries series = new CategorySeries("测试数据" + (i + 1)); if (i == 0) { for (int j = 0; j < data1.length; j++) { series.add(data1[j]); } } else { for (int j = 0; j < data2.length; j++) { series.add(data2[j]); } } dataset.addSeries(series.toXYSeries()); }
源码附上:点击下载ShowChart.zip