Android使用MPAndroidChart画折线图

MPAndroidChart GitHub地址https://github.com/PhilJay/MPAndroidChart
一个强大的Android图表视图/图形视图库,支持直线-条形-饼-雷达-气泡-烛台图以及缩放、平移和动画。

今天使用这个库生成一个折线图,先看效果图
在这里插入图片描述
先来初始化表格属性,

 private void initLineChart(){
        //设置线状图不显示描述
        heartRateLineChart.setDescription(null);

        //Y 自下往上动态绘制  这里添加初始的动画效果
        heartRateLineChart.animateY(1000);

        //获取柱状图的X轴
        XAxis xAxis = heartRateLineChart.getXAxis();
        //下面两个是获取Y轴  包括左右
        YAxis axisLeft = heartRateLineChart.getAxisLeft();
        YAxis axisRight = heartRateLineChart.getAxisRight();
        //设置XY轴
        setAXis(xAxis,axisLeft,axisRight);

    }
 /*
     * 设置折线图的XY轴
     * */
    public void setAXis(XAxis axis,YAxis axisLeft,YAxis axisRight){
        //设置X轴在图底部显示
        axis.setPosition(XAxis.XAxisPosition.BOTTOM);
        //设置X轴的宽度
        axis.setAxisLineWidth(1);
        axis.setAxisLineColor(Color.BLACK);
        //起始0坐标开始
        axis.setAxisMinimum(0);
        //设置X轴显示轴线
        axis.setDrawAxisLine(true);
        //x的表格线不显示
        axis.setDrawGridLines(false);
        //设置X轴显示
        axis.setEnabled(true);
        //x轴显示字符串
        axis.setValueFormatter(new ValueFormatter() {
            @Override
            public String getFormattedValue(float value) {
            // private String[] mLableXHeartRate = new String[]{"初始","休息区","热身区","燃脂区","有氧运动","无氧运动","最大心率"};
                return mLableXHeartRate[(int)value];
            }
        });
        //
        axis.setLabelCount(7,true);


        //y轴0刻度
        axisLeft.setAxisMinimum(30);
        //不画网格线
        axisLeft.setDrawGridLines(false);
        axisLeft.setAxisLineColor(Color.BLACK);
        //显示Y轴轴线
        axisLeft.setDrawAxisLine(true);
        axisLeft.setAxisLineWidth(1);
        axisLeft.setEnabled(true);
        axisLeft.setDrawLabels(true);


        //不显示右Y轴
        axisRight.setEnabled(false);

    }

//接下来就是设置数据了

//Y轴的数据  根据自己的实际情况放入集合中就行
 private List<Integer> mLableYHeartRate = new ArrayList<>();
 /*
     * 设置折线图数据
     * @return BarData
     * */
    public LineData setLineData(){
        //X轴就是0-6  
        List<Entry> mListEnryMin = new ArrayList<>();

        for (int i = 0; i < mLableXHeartRate.length; i++) {
        //添加x,y坐标的值
            mListEnryMin.add(new Entry(i,mLableYHeartRate.get(i)));
        }
        LineDataSet barDataSet = new LineDataSet(mListEnryMin,"心率区间");
        //设置线条颜色为红色
        barDataSet.setColors(Color.parseColor("#ff0000"));
        //设置折线图转择点的值的大小
        barDataSet.setValueTextSize(12);

        LineData lineData = new LineData(barDataSet);

        return lineData;
    }

更新数据

  heartRateLineChart.setData(setLineData());
        heartRateLineChart.invalidate();

//布局

<com.github.mikephil.charting.charts.LineChart
        android:layout_width="match_parent"

        android:layout_height="@dimen/dp_200"
        android:id="@+id/heart_rate_line_chart"
        android:padding="@dimen/dp_12"
        android:background="@color/white"

        />

这样就简单的生成了一个折线图,

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值