1.添加依赖包
首先去网上查询当前依赖包的版本,链接如下
https://bintray.com/search?query=MPAndroidChart
改程序编写的时候版本如下
所以依赖里面添加的依赖包
implementation ‘com.mysugr.MPAndroidChart:MPAndroidChart:3.1.0-mysugr-1’
repositories {
google()
jcenter()
maven { url ‘https://www.jitpack.io’ }
}
2.添加布局xml
<com.github.mikephil.charting.charts.LineChart
android:layout_width=“fill_parent”
android:layout_height=“fill_parent”
android:id="@+id/lineChart" />
3.获取LineChart对象
linechart = (LineChart) findViewById(R.id.lineChart);
4.Linechart相关设置
linechart.getLegend().setEnabled(true);// 是否显示图例 默认为true
linechart.getDescription().setEnabled(true);// 是否显示描述
linechart.setDragEnabled(true);//启动平移图表
linechart.setDoubleTapToZoomEnabled(true);//双击缩放
linechart.setScaleEnabled(true);//启动缩放上的2个轴
linechart.setNoDataText(“暂无数据”);// 没有数据的时候默认显示的文字
linechart.setNoDataTextColor(Color.BLUE);//设置默认显示的文字颜色
linechart.setBorderColor(Color.BLUE);//设置坐标轴颜色
linechart.setBorderWidth(5);//设置坐标轴宽度
// linechart.setTouchEnabled(true);//设置是否可以触摸
//设置边距
linechart.setExtraRightOffset(25f);
linechart.setExtraBottomOffset(10f);
linechart.setExtraTopOffset(10f);
5.建立坐标轴
XAxis xAxis = linechart.getXAxis();//获取x轴
xAxis.setDrawAxisLine(true);//绘制X轴,默认为true
xAxis.setAxisLineWidth(5);
xAxis.setAxisLineColor(Color.BLUE);
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//设置x轴位置,有四个属性。
//禁用x轴,设置为false后该轴任何部分都不会绘制,所以即使再设置 xAxis.setDrawAxisLine(true);也不会被绘制
//xAxis.setEnabled(false);
xAxis.setDrawGridLines(true);//绘制网格线,默认为true xAxis.setGridColor(Color.WHITE);//设置该轴的网格线颜色。
// xAxis.setGridLineWidth(5f);// 设置该轴网格线的宽度。
xAxis.setDrawLabels(true);//绘制该轴标签
xAxis.setAxisMaximum(30);
xAxis.setAxisMinimum(0);
xAxis.setLabelCount(10);
xAxis.setTextColor(Color.RED);// 设置轴标签的颜色。
xAxis.setTextSize(11f);//设置轴标签的文字大小。
//xAxis.setTypeface(Typeface tf);// 设置轴标签的 Typeface。
yAxis = linechart.getAxisLeft();//获取左轴
// YAxis rightAxis = chart.getAxisRight();//获取右轴
linechart.getAxisRight().setEnabled(false);//隐藏右轴 默认显示
yAxis.setDrawAxisLine(true);//绘制X轴,默认为true
yAxis.setAxisLineWidth(5);
yAxis.setAxisLineColor(Color.BLUE);
yAxis.setTextColor(Color.RED);// 设置轴标签的颜色。
yAxis.setTextSize(11f);//设置轴标签的文字大小。
//设置Y轴最大最小值,不设置chart会自己计算
yAxis.setAxisMinimum(0);//设置最小值
yAxis.setAxisMaximum(70);//设置最大值
yAxis.setLabelCount(10);
yAxis.setDrawGridLines(true);//绘制网格线 默认为true
6.设置数据
LineDataSet dataSet= new LineDataSet(poitList, “压力曲线”);
dataSet.setAxisDependency(YAxis.AxisDependency.LEFT);
dataSet.setHighLightColor(Color.RED); // 设置点击某个点时,横竖两条线的颜色
dataSet.setDrawValues(false);//在点上显示数值 默认true
dataSet.setDrawCircles(false);//在点上画圆 默认true
dataSet.setValueTextColor(Color.WHITE);
dataSet.setMode(LineDataSet.Mode.CUBIC_BEZIER);// 设置为曲线显示,默认折线
// dataSet.setCubicIntensity(0.2f);//曲线弧度设计(区间0.05f-1f,默认0.2f)
dataSet.setValueTextSize(12f);//数值字体大小,同样可以设置字体颜色、自定义字体等
dataSet.setColor(Color.parseColor("#FC863E"));
dataSet.setLineWidth(2f);
LineData data = new LineData(dataSet);
linechart.setData(data);
7.设置图例及其颜色
setEnabled(boolean enabled) : 设置Legend启用或禁用。 如果禁用, Legend 将不会被绘制。
- setTextColor(int color) : 设置图例标签的颜色。
- setTextSize(float size) : 设置在DP传说标签的文字大小。
setPosition(LegendPosition pos) : 通过 LegendPosition 设置 Legend 出现的位置。
- RIGHT_OF_CHART
- RIGHT_OF_CHART_CENTER
- RIGHT_OF_CHART_INSIDE
- BELOW_CHART_LEFT
- BELOW_CHART_RIGHT
- BELOW_CHART_CENTER
8.传入数据
float[] ys1 = new float[]{12.699f,12.524f,12.267f, 12.014f,11.838f,11.71f,11.607f,11.534f,11.488f,11.473f,11.477f,11.493f,11.525f};
for (int i = 0; i < ys1.length; i++) {
poitList.add(new Entry(i/10, ys1[i]));
if(ys1[i]>yheight) {//纵坐标自适应
yheight= (int)ys1[i]+10;
yAxis.setAxisMaximum(yheight);//设置最大值
}
}
ength; i++) {
poitList.add(new Entry(i/10, ys1[i]));
if(ys1[i]>yheight) {//纵坐标自适应
yheight= (int)ys1[i]+10;
yAxis.setAxisMaximum(yheight);//设置最大值
}
}