MPAndroidChart初次使用(2)—— 折线图

MPAndroidChart初次使用(1)——饼状图有讲一部分问题,可以先看这个。

效果图

在这里插入图片描述

1. 添加依赖

repositories {
    maven { url 'https://jitpack.io' }
}
dependencies {
    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
}

2. XML界面

    <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/line_chart"
        android:layout_width="match_parent"
        android:layout_margin = "5dp"
        android:layout_height="200dp"
       app:layout_constraintTop_toBottomOf="@+id/title_context"
       />

3. 实现代码

//        折线图部分
        LineChart lineChart = (LineChart)root.findViewById(R.id.line_chart);

//        数据部分
        ArrayList<Entry> times_data = new ArrayList<Entry>();
        times_data.add(new Entry(0, 1));
        times_data.add(new Entry(1, 12));
        times_data.add(new Entry(2, 13));
        times_data.add(new Entry(3, 21));
        times_data.add(new Entry(4, 34));
        times_data.add(new Entry(5, 45));
        times_data.add(new Entry(6, 15));
        times_data.add(new Entry(7, 6));
        times_data.add(new Entry(8, 17));
        times_data.add(new Entry(9, 18));
        times_data.add(new Entry(10, 9));
        times_data.add(new Entry(11, 10));
        times_data.add(new Entry(12, 11));
        times_data.add(new Entry(13, 12));
        times_data.add(new Entry(14, 13));
        times_data.add(new Entry(15, 14));
        times_data.add(new Entry(16, 15));
        times_data.add(new Entry(17, 16));
        times_data.add(new Entry(18, 17));
        times_data.add(new Entry(19, 18));
        times_data.add(new Entry(20, 19));
        times_data.add(new Entry(21, 20));
        times_data.add(new Entry(22, 21));
        times_data.add(new Entry(23, 22));

        LineDataSet timeslineData = new LineDataSet(times_data,"学习");
        LineData data = new LineData(timeslineData);
        lineChart.setData(data);

//      去除description
        Description description = new Description();
        description.setEnabled(false);
        lineChart.setDescription(description);

//      去除对图标的触摸操作,如果没有去除,可以通过触摸对折线图进行
//        放大,缩小等操作。
        lineChart.setTouchEnabled(false);
//        将折现转变位曲线
        timeslineData.setMode(LineDataSet.Mode.CUBIC_BEZIER);
//        设置曲线颜色
        timeslineData.setColor(BLACK);
//        不显示圆点(默认是在每个数据点为蓝色小圆圈)
        timeslineData.setDrawCircles(false);
//        不显示数据点的数值
        timeslineData.setDrawValues(false);

//        X轴处理
        XAxis xAxis = lineChart.getXAxis();
//        设置X轴的位置为正下方
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
//        设置X轴坐标的刻度,即X轴上出现几个刻度
        xAxis.setLabelCount(7);
//        去除X轴上网格竖线
        xAxis.setDrawGridLines(false);
//        避免“剪掉”在x轴上的图表或屏幕边缘的第一个和最后一个坐标轴标签项
        xAxis.setAvoidFirstLastClipping(true);
//        自定义X轴上的刻度显示
        xAxis.setValueFormatter(new IAxisValueFormatter() {
            @Override
            public String getFormattedValue(float value, AxisBase axis) {
                return (int) value + "时";
            }
        });
        lineChart.invalidate();


//        Y轴处理
        YAxis ylAxis =lineChart.getAxis(YAxis.AxisDependency.LEFT);
//        设置Y轴的最大值
        ylAxis.setAxisMaximum(300);
//        Y轴横线设置为虚线
        ylAxis.enableGridDashedLine(20, 15, 0);
//        自定义Y轴的刻度显示
        ylAxis.setValueFormatter(new IAxisValueFormatter() {
            @Override
            public String getFormattedValue(float value, AxisBase axis) {
                return (int) value + "分钟";
            }
        });

        // 隐藏右侧Y轴(默认的折线图是左右两侧各一条Y轴)
        YAxis yrAxis = lineChart.getAxisRight();
        yrAxis.setEnabled(false);
        
       // 去掉 Legend
        Legend legend = lineChart.getLegend();
        legend.setEnabled(false);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值