MPAndroidChart的饼状图应用

项目中用到饼状图使用的过程记录下来,方便后期使用查阅。

MPAndroidChart版本3.0.3

布局文件

<com.github.mikephil.charting.charts.PieChart
        android:id="@+id/mPieChart"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"/>

代码

        mPieChart = findViewById(R.id.mPieChart);
        mPieChart.setExtraOffsets(20f, 20f, 20f, 20f);
        // 设置饼图是否接收点击事件,默认为true
        mPieChart.setTouchEnabled(true);
        //设置饼图是否使用百分比
        mPieChart.setUsePercentValues(true);
        //设置图表转动阻力摩擦系数[0,1]  就是转动的摩擦系数 如果是0表示手指滑动立即停止
        mPieChart.setDragDecelerationFrictionCoef(0.95f);
        //设置饼图右下角的文字描述
        Description des = new Description();
        des.setText("测试");
        //设置饼图右下角的文字大小
        des.setTextSize(16f);
        mPieChart.setDescription(des);
        //设置pieChart图表的描述是否显示
        mPieChart.getDescription().setEnabled(false);
        //是否显示圆盘中间文字,默认显示
        mPieChart.setDrawCenterText(true);
        //设置圆盘中间文字
        mPieChart.setCenterText("中间文字");
        //设置圆盘中间文字的大小
        mPieChart.setCenterTextSize(20);
        //设置圆盘中间文字的颜色
        mPieChart.setCenterTextColor(Color.RED);
        //设置圆盘中间文字的字体
        mPieChart.setCenterTextTypeface(Typeface.DEFAULT);
        //设置中间透明圈的半径,值为所占饼图的百分比
        //mPieChart.setTransparentCircleRadius(50);

        mPieChart.setEntryLabelColor(Color.BLACK);       //设置pieChart图表文本字体颜色
        //mPieChart.setEntryLabelTypeface(Typeface.DEFAULT);     //设置pieChart图表文本字体样式
        //mPieChart.setEntryLabelTextSize(10f); //设置pieChart图表文本字体大小

        //是否显示饼图中间空白区域,默认显示
        mPieChart.setDrawHoleEnabled(true);
        //设置圆盘是否转动,默认转动
        mPieChart.setRotationEnabled(true);
        //设置初始旋转角度
        mPieChart.setRotationAngle(0);
        //设置比例图
        Legend mLegend = mPieChart.getLegend();
        //设置比例图显示在饼图的哪个位置
        mLegend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART);
        //设置比例图的形状,默认是方形,可为方形、圆形、线性
        mLegend.setForm(Legend.LegendForm.CIRCLE);
        //设置分类代表的值不显示
        mLegend.setDrawInside(false);
        mLegend.setEnabled(false);

        //设置X轴动画
        mPieChart.animateX(1800);

        //模拟数据
        ArrayList<PieEntry> entries = new ArrayList<>();
        entries.add(new PieEntry(40, "产品1"));
        entries.add(new PieEntry(20, "产品2"));
        entries.add(new PieEntry(30, "产品3"));
        entries.add(new PieEntry(10, "产品4"));

        //显示在比例图上
        PieDataSet dataSet = new PieDataSet(entries, "");
        //设置个饼状图之间的距离
        dataSet.setSliceSpace(3f);
        // 部分区域被选中时多出的长度
        dataSet.setSelectionShift(5f);

        // 设置饼图各个区域颜色
        ArrayList<Integer> colors = new ArrayList<>();
        colors.add(Color.RED);
        colors.add(Color.GREEN);
        colors.add(Color.BLUE);
        colors.add(Color.YELLOW);
        dataSet.setColors(colors);
        //设置提示区域的线开始点距离圆形偏离百分比
        dataSet.setValueLinePart1OffsetPercentage(80.f);
        //再环内部分线的长
        dataSet.setValueLinePart1Length(0.4f);
        //再环外部分线的长
        dataSet.setValueLinePart2Length(0.2f);
        //提示字体大小
        dataSet.setValueTextSize(14f);
        //线的颜色
        dataSet.setValueLineColor(Color.DKGRAY);
        //线的粗细
        dataSet.setValueLineWidth(2);
        //Y的值现在饼上还是再饼外
        dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);

        PieData data = new PieData(dataSet);

        mPieChart.setData(data);
        // 撤销所有的亮点
        mPieChart.highlightValues(null);

        mPieChart.invalidate();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值