使用MPAndroidChart开源库实现折线图

来源:互联网 发布:java内存泄露分析工具 编辑:程序博客网 时间:2024/06/03 22:40

MPAndroidChart是一个开源的第三方图表库,支持折线图、饼状图、柱状图等等, 例程只实现了折线图的功能。

使用也比较简单,添加依赖:

compile files('libs/mpandroidchartlibrary-2-2-4.jar')

设置坐标轴的信息

XAxis xAxis = lineChart.getXAxis();// 设置X轴的位置xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);// 设置X轴启用或者禁用xAxis.setEnabled(true);// 上面第一行代码设置了false,所以下面第一行即使设置为true也不会绘制AxisLinexAxis.setDrawAxisLine(true);xAxis.setDrawGridLines(false);xAxis.setTextColor(Color.BLACK);xAxis.setAxisLineColor(Color.rgb(77, 192, 148));xAxis.setSpaceBetweenLabels(0);xAxis.setLabelsToSkip(0);xAxis.setAvoidFirstLastClipping(true);YAxis yAxis = lineChart.getAxisLeft();// 设置左边的label可用yAxis.setDrawLabels(true);// 设置左边的线不可用yAxis.setDrawGridLines(false);// 设置左边的线不可用yAxis.setDrawAxisLine(false);YAxis yAxisRight = lineChart.getAxisRight();// 设置左边的label不可用yAxisRight.setDrawLabels(false);// 设置左边的线不可用yAxisRight.setDrawGridLines(false);// 设置左边的线不可用yAxisRight.setDrawAxisLine(false);yAxisRight.setTextColor(Color.WHITE);yAxisRight.setSpaceTop(15);  //设置最大值距离顶部的距离,即留白区域yAxisRight.setSpaceBottom(15);

生成折线的数据

// y轴的数据集合LineDataSet lineDataSet = new LineDataSet(yValues, null);//用y轴的集合来设置参数lineDataSet.setLineWidth(1.75f); // 线宽lineDataSet.setCircleSize(2f);// 显示的圆形大小lineDataSet.setColor(Color.parseColor("#45a6d9"));// 显示颜色lineDataSet.setCircleColor(Color.WHITE);// 圆形的颜色lineDataSet.setValueTextColor(Color.WHITE);lineDataSet.setHighlightEnabled(true);lineDataSet.setHighLightColor(Color.TRANSPARENT); // 高亮的线的颜色lineDataSet.setDrawFilled(true);  //填充折现下面的区域lineDataSet.setFillColor(Color.rgb(245, 245, 245)); //设置填充区域的颜色ArrayList<ILineDataSet> lineDataSets = new ArrayList<ILineDataSet>();lineDataSets.add(lineDataSet); // add the datasets// create a data object with the datasetsLineData lineData = new LineData(xValues, lineDataSets);lineData.setDrawValues(false);

设置要显示的样式

lineChart.setDrawBorders(false);  //是否在折线图上添加边框// no description textlineChart.setDescription("");// 数据描述// 如果没有数据的时候,会显示这个,类似listview的emtpyviewlineChart.setNoDataTextDescription("You need to provide data for the chart.");// enable / disable grid backgroundlineChart.setDrawGridBackground(false); // 是否显示表格颜色// 表格的的颜色,在这里是是给颜色设置一个透明度lineChart.setGridBackgroundColor(Color.rgb(77, 192, 148) & 0x70FFFFFF);// enable touch gestureslineChart.setTouchEnabled(true); // 设置是否可以触摸// enable scaling and dragginglineChart.setDragEnabled(false);// 是否可以拖拽lineChart.setScaleEnabled(false);// 是否可以缩放// if disabled, scaling can be done on x- and y-axis separatelylineChart.setPinchZoom(false);//// add datalineChart.setData(lineData); // 设置数据//要设置高亮显示有效才能使用该事件lineChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {     @Override     public void onValueSelected(Entry entry, int i, Highlight highlight) {     }     @Override     public void onNothingSelected() {     }});

这里写图片描述

原创粉丝点击