android统计图—achartengine

一、 柱状图

    

1.    修改背景色或设置背景图片
背景色设置需要设置两项:setMarginsColor(设置四边颜色)以及setBackgroundColor(设置中间背景色)
设置背景图片:http://blog.csdn.net/kmyhy/article/details/6590294
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. //设置统计图颜色,显示数值以及显示字体大小
      SimpleSeriesRenderer r = new SimpleSeriesRenderer();
      r.setColor(Color.BLACK);
      r.setDisplayChartValues(true);
      r.setChartValuesTextSize(30);
      r.setChartValuesTextAlign(Paint.Align.RIGHT);
      mXyMultipleSeriesRenderer.addSeriesRenderer(r);
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参数介绍:
       http://blog.csdn.net/lk_blog/article/details/7645661
26.ChartView.repaint();是重新绘图的命令(@ FireLion 提供)
27.关于AChartEngine的点击事件,双击事件,滑动事件均可以用自定义事件解决,但是需要注意的是先设置renderer.setClickEnabled(false);

28.若是添加图形后变形,可以设置 renderer.setInScroll(true);解决,来自于@gupengno1
29.renderer.setGridColor();//设置网格颜色
30.renderer.setAxesColor();//设置坐标轴颜色


二、折线图
                       //设置图表的X轴的当前方向
            mXyMultipleSeriesRenderer.setOrientation(XYMultipleSeriesRenderer.Orientation.HORIZONTAL);
//设置图表标题文字的大小
            mXyMultipleSeriesRenderer.setChartTitleTextSize(30);
//设置标签的文字大小
            mXyMultipleSeriesRenderer.setLabelsTextSize(18);
//设置图例文本大小
            mXyMultipleSeriesRenderer.setLegendTextSize(20);
//设置点的大小
            mXyMultipleSeriesRenderer.setPointSize(10f);
//设置y轴最小值是0
            mXyMultipleSeriesRenderer.setYAxisMin(0);
            mXyMultipleSeriesRenderer.setYAxisMax(15);
//设置Y轴刻度个数(貌似不太准确)
            mXyMultipleSeriesRenderer.setYLabels(20);
            mXyMultipleSeriesRenderer.setXAxisMin(0);
            mXyMultipleSeriesRenderer.setXAxisMax(5);
//显示网格
            mXyMultipleSeriesRenderer.setShowGrid(true);
            mXyMultipleSeriesRenderer.setZoomEnabled(false, false);
            //设置左右可以移动,上下不可以移动
            mXyMultipleSeriesRenderer.setPanEnabled(true,false);
            //将x标签栏目显示如:1,2,3,4替换为显示1月,2月,3月,4月
           mXyMultipleSeriesRenderer.addXTextLabel(1, "1月");
           mXyMultipleSeriesRenderer.addXTextLabel(2, "2月");
           mXyMultipleSeriesRenderer.addXTextLabel(3, "3月");
           mXyMultipleSeriesRenderer.addXTextLabel(4, "4月");
  //设置只显示如1月,2月等替换后的东西,不显示1,2,3等
            mXyMultipleSeriesRenderer.setXLabels(0);
//设置视图位置
            mXyMultipleSeriesRenderer.setMargins(new int[] { 20, 30, 15, 20 });
            //(类似于一条线对象)
            XYSeriesRenderer r = new XYSeriesRenderer();
//设置颜色
            r.setColor(Color.BLUE);
//设置点的样式
            r.setPointStyle(PointStyle.CIRCLE);
//填充点(显示的点是空心还是实心)
            r.setFillPoints(true);
//将点的值显示出来
            r.setDisplayChartValues(true);
//显示的点的值与图的距离
            r.setChartValuesSpacing(10);
//点的值的文字大小
            r.setChartValuesTextSize(25);
            //是否填充折线图的下方
            r.setFillBelowLine(true);
//填充的颜色,如果不设置就默认与线的颜色一致
            r.setFillBelowLineColor(Color.GREEN);
            r.setLineWidth(3);//设置线宽
            mXyMultipleSeriesRenderer.addSeriesRenderer(r);

三、饼状图
        double[] values = new double[] { 12, 14, 11, 10, 19 }; // 每一块的百分比
        int[] colors = new int[] { Color.BLUE, Color.GREEN, Color.MAGENTA,
                Color.YELLOW, Color.CYAN }; // 每一块的颜色
        DefaultRenderer renderer = new DefaultRenderer(); // 设置各项参数用
        renderer.setLabelsTextSize(15); // 图上说明文字的大小
        renderer.setLegendTextSize(25); // 图下面说明文字的大小
        renderer.setMargins(new int[] { 100, 30, 15, 40 }); // 图离上做下右的间距,貌似没用
        renderer.setZoomButtonsVisible(true); // 设置放大缩小按钮是否可见
        renderer.setPanEnabled(false); // 是否可以拖动
        renderer.setLabelsColor(Color.WHITE); // 图上说明文字的颜色
        renderer.setApplyBackgroundColor(true);
        renderer.setBackgroundColor(Color.GRAY); // 设置背景颜色,和上面renderer.setApplyBackgroundColor(true);
                                                    // 一起使用才有效
        renderer.setAxesColor(Color.RED);
        for (int color : colors) { // 渲染每块区域的颜色
            SimpleSeriesRenderer r = new SimpleSeriesRenderer();
            r.setColor(color);
            renderer.addSeriesRenderer(r);
        }
        CategorySeries series = new CategorySeries("饼状图"); // 画饼状图对象
        series.add("二月份", values[0]); // 设置其说明文字和所占的比例大小
        series.add("三月份", values[1]);
        series.add("四月份", values[2]);
        series.add("五月份", values[3]);
        series.add("六月份", values[4]);

        return ChartFactory.getPieChartIntent(context, series, renderer, "饼状态");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值