首先附上效果图:
1.添加依赖
//在build.gradle(Module:app)下添加
implementation'com.github.PhilJay:MPAndroidChart:v3.0.3'
//在build.gradle(Project:你的项目名称)下的allprojects中添加
maven {
url"https://jitpack.io"
}
2.新建布局
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/linechart"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
3. 首先我们要明确linechart中的折线是由一个个点构成的,造两条线的数据,这里我用的是list来存储所有点的值,并用map装载。
private HashMap> getData(){
//造数据
List point =new ArrayList<>();
for (int i=1;i<10;i++){
point.add(new Entry(i, (float) ((Math.random())*20)));
}
HashMap> map =new HashMap<>();
map.put("one",point);
List point1 =new ArrayList<>();
for (int i=1;i<10;i++){
point1.add(new Entry(i, (float) ((Math.random())*20)));
}
map.put("two",point1);
return map;
}
4.装载数据并设置样式。
private void showLineChart(HashMap> map,LineChart lineChart){
//载入map中point的数据,并设置颜色
LineDataSet lineDataSet=new LineDataSet(map.get("one"),"这是线段一");
lineDataSet.setColor(Color.rgb(199,255,140));
//载入map中point1的数据,并设置颜色
LineDataSet lineDataSet1=new LineDataSet(map.get("two"),"这是线段二");
lineDataSet1.setColor(Color.rgb(255,240,157));
LineData lineData=new LineData();
lineData.addDataSet(lineDataSet);
lineData.addDataSet(lineDataSet1);
lineChart.setData(lineData);
//设置下方图标
Description description=new Description();
description.setText("折线图表");
lineChart.setDescription(description);
//这里是设置折线图的摆放位置,可以用它来图的大小
lineChart.setExtraOffsets(25,80,28,80);
//设置x轴
XAxis xAxis=lineChart.getXAxis();
//设置x轴摆放位置
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
//设置x轴的最小最大位置的值
xAxis.setAxisMinimum(0);
xAxis.setAxisMaximum(map.get("one").size()+1);
//设置列数
xAxis.setLabelCount(map.get("one").size());
//设置行数和最小显示值
lineChart.getAxisLeft().setLabelCount(map.get("one").size());
lineChart.getAxisLeft().setAxisMinimum(0);
//关闭y轴右坐标,以及横线的显示
lineChart.getAxisRight().setDrawGridLines(false);
lineChart.getAxisRight().setEnabled(false);
//设置图表不能缩放,刷新数据
lineChart.setScaleEnabled(false);
lineChart.invalidate();
}
5.主类调用即可
lineChart =this.findViewById(R.id.linechart);
showLineChart(getData(),lineChart);
附上代码:https://github.com/jiutaotan/MPChart.git