MPAndroidChart学习笔记(一)

一幅简单的LineChart

效果:

MPAndroidChart学习笔记(一)_第1张图片
效果图

代码:

MainActivity

package cn.foxnickel.chartdemo;

import android.graphics.Paint;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.AxisBase;
import com.github.mikephil.charting.components.Description;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;
import com.github.mikephil.charting.formatter.IAxisValueFormatter;
import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;

import java.util.ArrayList;
import java.util.List;
/*
* 新建LineChart的大概步骤:
*   1.设置Chart格式
*   2.获取坐标轴并设置坐标轴的格式
*   3.添加数据
*   */
public class MainActivity extends AppCompatActivity {

    LineChart mLineChart;
    private List mEntryList;
    private final String TAG = getClass().getSimpleName();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mLineChart = (LineChart) findViewById(R.id.chart);

        /*1.chart格式设置*/
        mLineChart.setDrawGridBackground(false);//无背景网格
        mLineChart.setDrawBorders(false);

        //图表描述
        Description description = new Description();
        description.setText("近一周学习情况");//描述内容
        description.setTextColor(0xff000000);//描述字体颜色
        description.setTextSize(24f);//描述字体大小
        description.setTextAlign(Paint.Align.LEFT);//文字左对齐
        description.setPosition(100,100);//设置图表描述
        mLineChart.setDescription(description);

        mLineChart.setTouchEnabled(false);//可触摸
        mLineChart.setDragEnabled(true);//可拖动
        mLineChart.setScaleEnabled(true);//可放缩

        /*2.获取坐标轴并进行设置*/
        //获取和设置X轴
        XAxis xAxis = mLineChart.getXAxis();//获取X轴
        xAxis.setEnabled(true);//设置显示X轴
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//X轴位置
        xAxis.setAxisLineWidth(2);//设置X轴宽度
        xAxis.setDrawGridLines(false);//无网格
        xAxis.setDrawAxisLine(true);//显示X轴
        /*X轴数据*/
        final String[] xValues = {"3.14","3.15","3.16","3.17","3.18","3.19","3.20"};
        /*给X轴设置数据*/
        xAxis.setValueFormatter(new IAxisValueFormatter() {
            @Override
            public String getFormattedValue(float value, AxisBase axis) {
                return xValues[(int)value];
            }

            @Override
            public int getDecimalDigits() {
                return 0;
            }
        });

        //获取并设置Y轴
        YAxis leftYAxis = mLineChart.getAxisLeft();//获取左侧Y轴
        YAxis rightYAxis = mLineChart.getAxisRight();//获取右侧Y轴
        rightYAxis.setEnabled(false);//禁止显示右侧Y轴
        leftYAxis.setAxisLineWidth(2);
        leftYAxis.setDrawGridLines(false);
        /*leftYAxis.setStartAtZero(true);//设置从零开始显示*/

        /*3.添加数据*/
        ArrayList entries1 = new ArrayList<>();//Entry就是折线图上的点
        entries1.add(new Entry(0,85));
        entries1.add(new Entry(1,88));
        entries1.add(new Entry(2,75));
        entries1.add(new Entry(3,69));
        entries1.add(new Entry(4,95));
        entries1.add(new Entry(5,77));
        entries1.add(new Entry(6,88));

        ArrayList entries2 = new ArrayList<>();
        entries2.add(new Entry(0,75));
        entries2.add(new Entry(1,88));
        entries2.add(new Entry(2,55));
        entries2.add(new Entry(3,79));
        entries2.add(new Entry(4,85));
        entries2.add(new Entry(5,97));
        entries2.add(new Entry(6,78));

        /*LineDataSet是点的集合,连成线*/
        LineDataSet lineDataSet1 = new LineDataSet(entries1,"Listen");
        lineDataSet1.setColor(0xff3f51b5);
        LineDataSet lineDataSet2 = new LineDataSet(entries2,"speech");
        lineDataSet2.setColor(0xffff4081);

        /*线条的集合(可以添加多条线)*/
        List dataSets = new ArrayList<>();
        dataSets.add(lineDataSet1);
        dataSets.add(lineDataSet2);

        /*要给Chart设置的数据(将dataSets作为数据对象)*/
        LineData lineData = new LineData(dataSets);

        mLineChart.setData(lineData);//设置数据
        mLineChart.invalidate();//刷新显示

    }
}

参考:MPAndroidChart 教程:概述

你可能感兴趣的:(MPAndroidChart学习笔记(一))