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

来源:互联网 发布:手机淘宝好友如何查看 编辑:程序博客网 时间:2024/05/18 04:37

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

原创粉丝点击