MPAndroidChart中LineChart折线图详细用法(一)
先看一下具体的图表效果
没错这图表就是通过 MPAndroidChart 的 LineChart直接生成的。
直接欣赏 Java 源码吧 !
public class LineChartActivity extends AppCompatActivity { private LineChart mLineChart; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.linechart_activity); mLineChart = (LineChart) findViewById(R.id.linechart); //图表设置 mLineChart.setNoDataText("暂无数据"); mLineChart.setExtraOffsets(0,0,0,10); //设置图表距离上下左右的距离 mLineChart.setDrawGridBackground(false); mLineChart.setScaleEnabled(false); mLineChart.getAxisRight().setEnabled(false); //隐藏右侧Y轴 //mLineChart.getAxisLeft().setEnabled(false); //隐藏左侧的Y轴 //数据轴设置部分 XAxis xAxis = mLineChart.getXAxis(); //获取表格的X轴 xAxis.setEnabled(true); //设置轴启用或禁用 如果禁用以下的设置全部不生效 xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); //设置x轴的显示位置 //设置轴线属性 xAxis.setDrawAxisLine(true); //是否绘制轴线 xAxis.setAxisLineColor(Color.BLACK); //设置x轴线颜色 xAxis.setAxisLineWidth(1f); //设置标签属性 xAxis.setDrawLabels(true);//是否绘制轴线上的标签 //xAxis.setTextColor(12); // 设置轴标签字体大小 xAxis.setTextColor(Color.BLUE);//设置轴标签的字体颜色 // xAxis.setAxisMinimum(0); //设置x轴的最小值 // xAxis.setAxisMaximum(100); //设置x轴的最大值 // xAxis.setLabelCount(10); //设置x轴显示标签数量 xAxis.setAvoidFirstLastClipping(true); //图表将避免第一个和最后一个标签条目被减掉在图表或屏幕的边缘 xAxis.setLabelRotationAngle(-30f); //设置x轴标签的旋转角度 //设置网格线 //xAxis.setDrawGridLines(false); //设置x轴上每个点对应的线 //xAxis.setGridLineWidth(1f); //设置竖线宽度 //xAxis.setGridColor(Color.RED); //设置竖线的显示样式为虚线(lineLength控制虚线段的长度,spaceLength控制线之间的空间) //xAxis.enableAxisLineDashedLine(1f,1f,0); //xAxis.setGranularity(1f); //xAxis.setValueFormatter(null); //mLineChart.getXAxis().setEnabled(false); //隐藏X轴 ArrayList<Entry> values = new ArrayList<>(); values.add(new Entry(10,50)); values.add(new Entry(20,66)); values.add(new Entry(30,30)); values.add(new Entry(40,80)); values.add(new Entry(50,50)); values.add(new Entry(60,70)); setData(values); } public void setData(ArrayList<Entry> values){ LineDataSet set = new LineDataSet(values,"测试折线图"); set.setLineWidth(1.5f); //设置折线的宽度 set.setValueTextSize(10f); //设置显示值的文字大小 set.setColor(Color.RED); //设置折线颜色 set.setCircleColor(Color.RED); //设置焦点圆心的颜色 set.setCircleRadius(3f); //设置焦点圆心的大小 set.setMode(LineDataSet.Mode.HORIZONTAL_BEZIER); //设置成曲线 //set.setMode(LineDataSet.Mode.CUBIC_BEZIER); //set.setMode(LineDataSet.Mode.STEPPED); //set.setAxisDependency(YAxis.AxisDependency.LEFT); //设置点击交叉线 set.setHighlightEnabled(true); //是否禁用点击高亮线 set.setHighLightColor(Color.BLUE); //设置点击交点后显示交高亮线的颜色 set.enableDashedHighlightLine(10f,5f,0); //点击后的高亮线的显示样式 set.setHighlightLineWidth(1f); //设置点击交点后显示高亮的线宽 //设置曲线下面的填充颜色 set.setDrawFilled(true); //set.setFillAlpha(0); set.setFillColor(Color.BLUE); ArrayList<ILineDataSet> dataSet = new ArrayList<>(); dataSet.add(set); LineData data = new LineData(dataSet); mLineChart.setData(data); mLineChart.invalidate(); } }
有些代码是注释掉了,但这个不影响上面图片的生成效果。
如果需要测试更多的效果,可以通过取消上面注释的查看。