MpAndroidChart 学习篇-柱状图和饼状图学习笔记

1.先上图


饼状图

package com.org.gsc.chartdemo.activitys;

import android.graphics.Color;

import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.data.PieEntry;
import com.github.mikephil.charting.formatter.PercentFormatter;
import com.github.mikephil.charting.interfaces.datasets.IPieDataSet;
import com.github.mikephil.charting.utils.ColorTemplate;
import com.org.gsc.chartdemo.R;
import com.org.gsc.chartdemo.bases.BaseActivity;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by qundui on 2017/8/30.
 * 饼状图页面
 */
public class PieActivity extends BaseActivity {
    private PieChart mPieChart;
    private List<PieEntry> y=new ArrayList<>();
    private PieDataSet dateset=new PieDataSet(y,"冰砖图");
    private PieData mdata=new PieData(dateset);
    @Override
    protected void doBusy() {
        mPieChart= findView(R.id.pc);
        mPieChart.getDescription().setEnabled(false);
        mPieChart.setUsePercentValues(true);
       mPieChart.setExtraOffsets(5, 10, 5, 5);
        mPieChart.setCenterText("我是郭神,我为我自己代言");

//做动画
        mPieChart.animateXY(2000,2000);
       // mPieChart.setDrawHoleEnabled(false);//是否铺满
        mPieChart.setHoleColor(Color.GREEN);//设置内圈的颜色
        mPieChart.setTransparentCircleColor(Color.WHITE);//设置内圈边缘的颜色
        mPieChart.setTransparentCircleAlpha(110);
        mPieChart.setRotationAngle(0);
        mPieChart.setHoleRadius(58f);
        mPieChart.setTransparentCircleRadius(61f);
        //图例设置
        Legend l = mPieChart.getLegend();
        l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
        l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);
        l.setOrientation(Legend.LegendOrientation.VERTICAL);
        l.setDrawInside(false);
        l.setTextColor(Color.GREEN);
        l.setTextSize(12);
        l.setXEntrySpace(7f);
        l.setYEntrySpace(0f);
        l.setYOffset(0f);
        y.add(new PieEntry(0.1f,"第1个饼子"));
        y.add(new PieEntry(0.5f,"第2个饼子"));
        y.add(new PieEntry(0.2f,"第3个饼子"));
        y.add(new PieEntry(0.1f,"第4个饼子"));
        y.add(new PieEntry(0.1f,"第5个饼子"));
        //设置外面显示Values
        dateset.setValueLinePart1OffsetPercentage(80.f);
        dateset.setValueLinePart1Length(0.2f);
        dateset.setValueLinePart2Length(0.4f);
        dateset.setValueLineColor(Color.RED);
        dateset.setValueTextColor(Color.BLACK);
        dateset.setValueTextSize(20);
        //dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
        dateset.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);

       dateset.setColors(ColorTemplate.MATERIAL_COLORS);
       dateset.setSelectionShift(5f);
        dateset.setSliceSpace(3f);//各个饼状图之间空白间隙
        mdata.setValueFormatter(new PercentFormatter());
        mPieChart.setData(mdata);
        mPieChart.invalidate();

    }
    @Override
    protected int getLayoutId() {
        return R.layout.act_pie;
    }
}

2.柱状图


package com.org.gsc.chartdemo.activitys;

import android.graphics.Color;

import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.components.LimitLine;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.interfaces.datasets.IBarDataSet;
import com.github.mikephil.charting.utils.ColorTemplate;
import com.org.gsc.chartdemo.MyMarkerView;
import com.org.gsc.chartdemo.R;
import com.org.gsc.chartdemo.bases.BaseActivity;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by qundui on 2017/8/29.
 * 柱状图页面
 */
public class BarAcivity extends BaseActivity {
    private BarChart barChart;
    private BarData mbardata;
    private BarDataSet m成绩;
    private LimitLine m及格分数线;

    @Override
    protected void doBusy() {
         barChart = (BarChart) findView(R.id.chart_bar);
        //获取X轴
        XAxis xAxis = barChart.getXAxis();
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
        barChart.getDescription().setEnabled(false);
        xAxis.setDrawGridLines(false);
        //获取X 轴的自定义格式器
        xAxis.setGranularity(1f);//设置最小间隔,防止当放大时,出现重复标签。
        XAxisValueFormatter xAxisValueFormatter=new XAxisValueFormatter(barChart);
        xAxis.setValueFormatter(xAxisValueFormatter);
        //获取Y轴以及自定义的构造器
        barChart.getAxisRight().setEnabled(false);
        barChart.getAxisLeft().setDrawGridLines(false);
        barChart.getAxisLeft().setValueFormatter(new YAxisValueFormatter());
        m及格分数线 = new LimitLine(60f, "及格分数线");
        m及格分数线.setTextColor(Color.RED);
        barChart.getAxisLeft().addLimitLine(m及格分数线);
//        List<Float> scores=new ArrayList<>();
//        scores.add(23.5f);
//        scores.add(45f);
//        scores.add(78f);
        MyMarkerView myMarkerView=new MyMarkerView(this, R.layout.custom_marker_view);
        myMarkerView.setChartView(barChart);
        barChart.setMarker(myMarkerView);
        List<IBarDataSet> datasets=new ArrayList<>();
        List<BarEntry> y=new ArrayList<>();
        y.add(new BarEntry(0,30));
        y.add(new BarEntry(1,56));
        y.add(new BarEntry(2,78));
        y.add(new BarEntry(3,80));
        y.add(new BarEntry(4,90));
        m成绩 = new BarDataSet(y, "成绩");
        // m成绩.setColor(Color.GREEN);
        m成绩.setColors(ColorTemplate.MATERIAL_COLORS);
        datasets.add(m成绩);
        barChart.setData(new BarData(datasets));
//        scores.add(90f);
//        YAxisValueFormatter yAxisValueFormatter=new YAxisValueFormatter(scores);
//        axisLeft.setValueFormatter(yAxisValueFormatter);
    }
    @Override
    protected int getLayoutId() {
        return R.layout.act_bar;
    }
}

package com.org.gsc.chartdemo.activitys;

import android.graphics.Color;

import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.charts.HorizontalBarChart;
import com.github.mikephil.charting.components.LimitLine;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.interfaces.datasets.IBarDataSet;
import com.github.mikephil.charting.utils.ColorTemplate;
import com.org.gsc.chartdemo.MyMarkerView;
import com.org.gsc.chartdemo.R;
import com.org.gsc.chartdemo.bases.BaseActivity;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by qundui on 2017/8/29.
 * 水平方向柱状图页面
 */
public class BarHorizontalAcivity extends BaseActivity {
    private BarChart barChart;

    private BarDataSet m成绩;
    private LimitLine m及格分数线;
    @Override
    protected void doBusy() {
         barChart = (HorizontalBarChart) findView(R.id.chart_bar);
        //获取X轴
        XAxis xAxis = barChart.getXAxis();
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
        barChart.getDescription().setEnabled(false);
        xAxis.setDrawGridLines(false);
        //获取X 轴的自定义格式器
        xAxis.setGranularity(1f);//设置最小间隔,防止当放大时,出现重复标签。
        XAxisValueFormatter xAxisValueFormatter=new XAxisValueFormatter(barChart);
        xAxis.setValueFormatter(xAxisValueFormatter);
        //获取Y轴以及自定义的构造器
        barChart.getAxisRight().setEnabled(false);
        barChart.getAxisLeft().setDrawGridLines(false);
        barChart.getAxisLeft().setValueFormatter(new YAxisValueFormatter());
        m及格分数线 = new LimitLine(60f, "及格分数线");
        m及格分数线.setTextColor(Color.RED);
        barChart.getAxisLeft().addLimitLine(m及格分数线);
//        List<Float> scores=new ArrayList<>();
//        scores.add(23.5f);
//        scores.add(45f);
//        scores.add(78f);
        MyMarkerView myMarkerView=new MyMarkerView(this, R.layout.custom_marker_view);
        myMarkerView.setChartView(barChart);
        barChart.setMarker(myMarkerView);
        List<IBarDataSet> datasets=new ArrayList<>();
        List<BarEntry> y=new ArrayList<>();
        y.add(new BarEntry(0,30));
        y.add(new BarEntry(1,56));
        y.add(new BarEntry(2,78));
        y.add(new BarEntry(3,80));
        y.add(new BarEntry(4,90));
        m成绩 = new BarDataSet(y, "成绩");
        // m成绩.setColor(Color.GREEN);
        m成绩.setColors(ColorTemplate.MATERIAL_COLORS);
        datasets.add(m成绩);
        barChart.setData(new BarData(datasets));
//        scores.add(90f);
//        YAxisValueFormatter yAxisValueFormatter=new YAxisValueFormatter(scores);
//        axisLeft.setValueFormatter(yAxisValueFormatter);
    }
    @Override
    protected int getLayoutId() {
        return R.layout.act_barh;
    }
}Demo 地址 https://git.oschina.net/gsc_abc/zhuzhuangtu.git

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江南一舟110

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值