MPAndroidChart學習筆記(二)

weixin_34185560發表於2017-03-15

一幅簡單的BarChart

效果:

4544491-d57cc4dbb9d0e9ff.png
效果圖

程式碼:

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學習筆記(一)

相關文章