android 图表基本属性方法设置

在项目中使用的,在这边做个记录:


    private void showChart(LinearLayout barChart) {
//        String[] titles = new String[]{"2012", "2013"};
        String[] titles = new String[]{"2013"};
        List<double[]> values = new ArrayList<double[]>();
        values.add(new double[]{30, 73, 24, 54, 90, 20, 12, 60,
                95, 50, 11, 25, 30, 73, 24, 54, 90, 20, 12, 60,
                95, 50, 11, 25, 30, 73, 24, 54, 90, 20, 12, 60});
//        int[] colors = new int[]{Color.RED, Color.BLUE};
        int[] colors = new int[]{Color.parseColor(WaterConstants.ZHUXINGTU_COLOR_ONE)};//柱形图颜色设置
        XYMultipleSeriesRenderer renderer = buildBarRenderer(colors);// 柱形图颜色设置
        setChartSettings(renderer, "年降水量", "省份", "降水量数量", 0.5, 32.5, 0, 100,
                Color.parseColor("#000000"), Color.parseColor("#000000"));// 设置柱形图标题,横轴(X轴)、纵轴(Y轴)、最小的伸所刻度、最大的伸所刻度
//        renderer.getSeriesRendererAt(0).setDisplayChartValues(true);// 在第0条柱形图上显示数据
//        renderer.getSeriesRendererAt(1).setDisplayChartValues(true);// 在第1条柱形图上显示数据
        renderer.setXLabels(titles.length);
        renderer.setYLabels(5);
        renderer.setXLabelsAlign(Paint.Align.LEFT);// 数据从左到右显示
        renderer.setYLabelsAlign(Paint.Align.LEFT);
        renderer.setPanEnabled(true, false);
//        for (int i = 0; i < xTitle.length; i++) {
//            renderer.addXTextLabel(i + 1, xTitle[i]);
//        }

        renderer.setZoomEnabled(true);
        renderer.setZoomButtonsVisible(false);// 显示放大缩小功能按钮
        renderer.setZoomRate(1.1f);
        renderer.setMargins(new int[]{25, 35, 20, 0}); // 图形4边距
        renderer.setChartTitleTextSize(30);//设置图表标题字体大小,我这边设置0是把标题隐藏掉
        renderer.setBarSpacing(0.5f);// 柱形图间隔
        renderer.setXLabelsAngle(-45f);// 设置字体倾斜度
        renderer.setXLabelsAlign(Paint.Align.CENTER);//标签名称在中间位置
        renderer.setXLabelsPadding(10);//设置X标签名称padding位置
        renderer.setXLabelsColor(Color.BLACK);//设置X标签名称的颜色
        renderer.setXRoundedLabels(true);
        renderer.setYLabelsColor(0, Color.BLACK);//设置Y标签名称的颜色
        renderer.setYLabelsAlign(Paint.Align.RIGHT);//设置Y轴标签的位置
        renderer.setYLabelsPadding(10);//设置Y标签名称padding位置

//        if (mChartView == null) {// 构建柱形图
//            mChartView = ChartFactory.getBarChartView(mView.getContext(),
//                    buildBarDataset(titles, values), renderer, Type.DEFAULT);
//            renderer.setClickEnabled(true);
//
//            //renderer.set
//            barChart.addView(mChartView, new LayoutParams(
//                    LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
//        } else
//            mChartView.repaint();

    }

    /**
     * @param colors
     * @return
     */
    private XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
        XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
        renderer.setAxisTitleTextSize(16);// 坐标轴标题字体大小:16
        renderer.setChartTitleTextSize(20);// 图表标题字体大小:20
        renderer.setLabelsTextSize(15);// 轴标签字体大小: 15
        renderer.setLegendTextSize(15);// 图例字体大小: 15
//        renderer.setBackgroundColor(Color.parseColor("#A7CFE8"));
        renderer.setMarginsColor(Color.parseColor("#ffffff"));//更改图的背景颜色
        int length = colors.length;
        for (int i = 0; i < length; i++) {
            XYSeriesRenderer r = new XYSeriesRenderer();
            r.setColor(colors[i]);
            renderer.addSeriesRenderer(r);
        }
        return renderer;
    }

    /**
     * @param renderer
     * @param title       柱形图标题
     * @param xTitle      横轴(X轴)
     * @param yTitle      纵轴(Y轴)
     * @param xMin        X轴最小的伸所刻度
     * @param xMax        X轴最大的伸所刻度
     * @param yMin        Y轴最小的伸所刻度
     * @param yMax        Y轴最大的伸所刻度
     * @param axesColor   设置y轴和X轴的颜色
     * @param labelsColor 设置y轴标签和X轴标签,字体的颜色及图名称的颜色
     */
    private void setChartSettings(XYMultipleSeriesRenderer renderer,
                                  String title, String xTitle, String yTitle, double xMin,
                                  double xMax, double yMin, double yMax, int axesColor,
                                  int labelsColor) {
        renderer.setChartTitle(title);//柱形图标题
        renderer.setXTitle(xTitle);//横轴(X轴)名称
        renderer.setYTitle(yTitle);//纵轴(Y轴)名称
        renderer.setXAxisMin(xMin);//X轴最小的伸所刻度
        renderer.setXAxisMax(xMax);//X轴最大的伸所刻度
        renderer.setYAxisMin(yMin);//Y轴最小的伸所刻度
        renderer.setYAxisMax(yMax);//Y轴最大的伸所刻度
        renderer.setAxesColor(axesColor);//设置y轴和X轴的颜色
        renderer.setLabelsColor(labelsColor);//设置y轴标签和X轴标签,字体的颜色及图名称的颜色
    }

    /**
     * @param titles
     * @param values 柱形图的数据源和饼图差不多,也是由一些键值对组成
     * @return
     */
    private XYMultipleSeriesDataset buildBarDataset(String[] titles,
                                                    List<double[]> values) {
        XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
        int length = titles.length;
        for (int i = 0; i < length; i++) {
            CategorySeries series = new CategorySeries(titles[i]);
            double[] v = values.get(i);
            int seriesLength = v.length;
            for (int k = 0; k < seriesLength; k++) {
                series.add(v[k]);
            }
            dataset.addSeries(series.toXYSeries());
        }
        return dataset;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DT从零到壹

您的鼓励是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值