achartengine多柱状图(自定义X轴显示参数)

来源:互联网 发布:c语言随机函数怎么用 编辑:程序博客网 时间:2024/05/02 02:59

使用achartengine绘制多状图,界面效果如下:



achartengine1.0.0到1.2.0jar包下载:点击打开链接


关键代码:(导入jar后,拷贝可用)

//柱状图的多个序列的名字String[] titles = new String[] { "金额", "游戏收入","其他" };//存放柱状图多个序列的值ArrayList<double[]> value = new ArrayList<double[]>();double[] d1 = new double[] {0,55,15, 30, 25, 12,0 };double[] d2 = new double[] {0,35,42, 12, 1, 35,0 };double[] d3 = new double[] {0,22,54, 41, 12, 25,0 };value.add(d1);value.add(d2);value.add(d3);//int maxVal1 = ChartUtil.getMaxVal(d1);//int maxVal2 = ChartUtil.getMaxVal(d2);//多个状的颜色int[] colors = { R.color.color_reseda, R.color.color_orange2,R.color.color_blue};//设置x轴和y轴的最大最小值//double[] val = new double[] { 1,//7, 0, maxVal1 > maxVal2 ?maxVal1:maxVal2};int[] xVal = new int[] {1, 2, 3,4,5,6,7};//自定义X轴显示的数据String[] xLableVal = new String[]{"","取款","存款","彩票","体育","真人",""};//生成柱状图viewGraphicalView mGraphicalView = ChartUtil.xychar(titles, value, colors, xLableVal, 5, val, xVal, "", true);//将生成的mGraphicalView添加到你需要显示的布局里面去mLayoutChart.addView(mGraphicalView);//调用方法public static GraphicalView xychar(String[] titles, ArrayList<double[]> value,int[] colors, String[] xlableVal, int y,double[] range, int []xLable ,String xtitle, boolean f) {//多个渲染XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();//布局的(上左下右)marginrenderer.setMargins(new int[] { 10, 35,20,25 });//多个序列的数据集XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();//构建数据集以及渲染for (int i = 0; i < titles.length; i++) {XYSeries series = new XYSeries(titles[i]);double [] yLable= value.get(i);for (int j=0;j< yLable.length;j++) {series.add(xLable[j],yLable[j]);}dataset.addSeries(series);XYSeriesRenderer xyRenderer = new XYSeriesRenderer();// 设置颜色xyRenderer.setColor(MyApplication.getCurrentActivity().getResources().getColor(colors[i]));// 设置点的样式 //xyRenderer.setPointStyle(PointStyle.SQUARE);// 将要绘制的点添加到坐标绘制中renderer.addSeriesRenderer(xyRenderer);}//在X轴显示自定义的标签,那么首先要设置renderer.setXLabels(0);其次我们要renderer.addXTextLabel循环添加//设置x轴标签数renderer.clearXTextLabels();for (int i = 0; i < xlableVal.length; i++) {renderer.addXTextLabel(i+1, xlableVal[i]);;}renderer.setXLabels(0);//设置Y轴标签数renderer.setYLabels(y);//设置x轴的最大值//renderer.setXAxisMax(x - 0.5);//设置轴的颜色renderer.setAxesColor(Color.BLACK);//设置x轴和y轴的标签对齐方式renderer.setXLabelsAlign(Align.CENTER);renderer.setYLabelsAlign(Align.RIGHT);// 设置现实网格renderer.setShowGrid(true); renderer.setYTitle("金额(千元)");renderer.setShowAxes(true); // 设置条形图之间的距离renderer.setBarSpacing(0.2);renderer.setInScroll(false);renderer.setPanEnabled(false, false);renderer.setClickEnabled(false);//设置x轴和y轴标签的颜色renderer.setXLabelsColor(R.color.color_gray);renderer.setYLabelsColor(0,R.color.color_gray);int length = renderer.getSeriesRendererCount();//设置图标的标题renderer.setChartTitle(xtitle);renderer.setChartTitleTextSize(15);renderer.setLabelsColor(R.color.color_gray);//设置图例的字体大小renderer.setLegendTextSize(15);renderer.setLabelsTextSize(12);renderer.setShowLegend(true);// 设置图例文本大小renderer.setLegendHeight(40);// 设置坐标轴标签字体大小  renderer.setAxisTitleTextSize(12);//设置x轴和y轴的最大最小值renderer.setMarginsColor(0x00888888);GraphicalView mChartView = ChartFactory.getBarChartView(MyApplication.getCurrentActivity(),dataset, renderer, Type.DEFAULT);return mChartView;}



补充其他参数描述:

1.    修改背景色或设置背景图片
背景色设置需要设置两项:setMarginsColor(设置四边颜色)以及setBackgroundColor(设置中间背景色)
2.    setAxisTitleTextSize(16);// 设置坐标轴标题文本大小
3.    setChartTitleTextSize(20); // 设置图表标题文本大小
4.    setLabelsTextSize(15); // 设置轴标签文本大小
5.    setLegendTextSize(15); // 设置图例文本大小
6.    renderer.setChartTitle( "设置柱图名称");//设置柱图名称
7.    renderer.setXTitle( "XX" );//设置X轴名称
8.    renderer.setYTitle( "YY" );//设置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.ChartView.repaint();重新绘图
26.关于AChartEngine的点击事件,双击事件,滑动事件均可以用自定义事件解决,但是需要注意的是先设置renderer.setClickEnabled(false);
27.若是添加图形后变形,可以设置 renderer.setInScroll(true); 
28.renderer.setGridColor();//设置网格颜色 
29.renderer.setAxesColor();//设置坐标轴颜色
30.Renderer.setShowLegend(true); //显示底部说明
31.Renderer.setShowLabels(false); //不显示标签
32.renderer.setLegendTextSize(20);//设置左下角表注的文字大小
33.renderer.setZoomButtonsVisible(true);//设置显示放大缩小按钮  
34.renderer.setZoomEnabled(false);//设置不允许放大缩小.  
35.renderer.setChartTitleTextSize(30);//设置图表标题的文字大小
36.renderer.setChartTitle("统计结果");//设置图表的标题  默认是居中顶部显示
37.renderer.setLabelsTextSize(20);//饼图上标记文字的字体大小
38.renderer.setLabelsColor(Color.WHITE);//饼图上标记文字的颜色
39.renderer.setPanEnabled(false);//设置是否可以平移
40.renderer.setDisplayValues(true);//是否显示值
41.renderer.setClickEnabled(true);//设置是否可以被点击

1 0
原创粉丝点击