Android那点事

MPAndroidChart学习笔记(二)

2017-03-15  本文已影响49人  NickelFox

一幅简单的BarChart

效果:

效果图

代码:

private void initBarChart() {
        mBarChart = (BarChart) findViewById(R.id.bar_chart);

        /*1.chart格式设置*/
        mBarChart.setDrawGridBackground(false);//无背景网格
        mBarChart.setDrawBorders(false);//无边框

        //图表描述
        Description description = new Description();
        description.setText("近一周学习时间图(分钟/天)");//描述内容
        description.setTextColor(0xff000000);//描述字体颜色
        description.setTextSize(16f);//描述字体大小
        description.setTextAlign(Paint.Align.LEFT);//文字左对齐
        description.setPosition(100,100);//设置图表描述
        mBarChart.setDescription(description);

        mBarChart.setTouchEnabled(false);//可触摸
        mBarChart.setDragEnabled(true);//可拖动
        mBarChart.setScaleEnabled(true);//可放缩

        /*2.获取坐标轴并进行设置*/
        //获取和设置X轴
        XAxis xAxis = mBarChart.getXAxis();//获取X轴
        xAxis.setEnabled(true);//设置显示X轴
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//X轴位置
        xAxis.setAxisLineWidth(2);//设置X轴宽度
        xAxis.setDrawGridLines(false);//无网格
        xAxis.setDrawAxisLine(true);//显示X轴
        /*X轴数据*/
        final String[] xValues = {"3.14","3.15","3.16","3.17","3.18","3.19","3.20"};
        /*给X轴设置数据*/
        xAxis.setValueFormatter(new IAxisValueFormatter() {
            @Override
            public String getFormattedValue(float value, AxisBase axis) {
                return xValues[(int)value];
            }

            @Override
            public int getDecimalDigits() {
                return 0;
           }
        });
        xAxis.setDrawLabels(true);

        //获取并设置Y轴
        YAxis leftYAxis = mBarChart.getAxisLeft();//获取左侧Y轴
        YAxis rightYAxis = mBarChart.getAxisRight();//获取右侧Y轴
        rightYAxis.setEnabled(false);//禁止显示右侧Y轴
        leftYAxis.setAxisLineWidth(2);
        leftYAxis.setDrawGridLines(false);
        /*leftYAxis.setStartAtZero(true);//设置从零开始显示*/

        /*3.添加数据*/
        ArrayList<BarEntry> entries1 = new ArrayList<>();//Entry就是折线图上的点
        entries1.add(new BarEntry(0,85));
        entries1.add(new BarEntry(1,88));
        entries1.add(new BarEntry(2,75));
        entries1.add(new BarEntry(3,69));
        entries1.add(new BarEntry(4,95));
        entries1.add(new BarEntry(5,77));
        entries1.add(new BarEntry(6,88));

        BarDataSet barDataSet = new BarDataSet(entries1,"使用时间");

        BarData barData = new BarData(barDataSet);

        mBarChart.setData(barData);
        mBarChart.invalidate();//刷新显示
    }

说明:

原理和LineChart一样,就是图表类型有改变

参考:MPAndroidChart学习笔记(一)

上一篇下一篇

猜你喜欢

热点阅读