日常入门代码,欢迎品评。有些地方没有讲清楚,因为我自己也没哟搞清楚,大家浅尝辄止。
折线图 LineChart
先看图:
代码部分:
private void initLineChart(){
Description description = new Description();
description.setText("give a mark");
description.setTextSize(16);
lineChart.setDescription(description);
String[] xData = {"1", "2", "3", "4", "5"};//预设的x轴的数据
String[] yData = {"80", "85", "80","90", "95"};//预设的y轴的数据
LineData lineData = getData(xData, yData);
lineChart.setData(lineData);
lineChart.setAutoScaleMinMaxEnabled(false);
lineChart.setBorderWidth(1f);//设置边框的宽度(粗细)
lineChart.setDrawBorders(true);//显示图形的边框(边界)
lineChart.setDragXEnabled(true);//在放大的情况下,能否拖动x轴
lineChart.setDragYEnabled(true);
lineChart.setTouchEnabled(true);//设置为false的话,界面就像是一个图片
lineChart.setBackgroundColor(Color.parseColor("#d1d1d1"));
lineChart.setDrawMarkers(true);//设置是否显示
lineChart.setMarker(new IMarker() {//设置imarker可以设置点击数据的时候出现的图形。
@Override
public MPPointF getOffset() {
return null;
}
@Override
public MPPointF getOffsetForDrawingAtPoint(float posX, float posY) {
return null;
}
@Override
public void refreshContent(Entry e, Highlight highlight) {
}
@Override
public void draw(Canvas canvas, float posX, float posY) {
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.GREEN);
paint.setTextSize(22f);
canvas.drawText("here", posX, posY, paint);
}
});
lineChart.animateX(500);
}
private LineData getData(String[] xd, String[] yd){
//节点
ArrayList<Entry> nodeData = new ArrayList<>();
for (int i = 0; i < xd.length; i ++){
nodeData.add(new Entry(Float.parseFloat(xd[i]), Float.parseFloat(yd[i])));
}
LineDataSet lineDataSet = new LineDataSet(nodeData, "Score for fisrt five time");
lineDataSet.setDrawFilled(true);//就是折线图下面是否有阴影填充,这样看起来就像是起伏的山脉
lineDataSet.setFillColor(Color.GREEN);
lineDataSet.setDrawCircles(true);//数据是否用圆圈显示
lineDataSet.setCircleColor(Color.BLACK);//显示数据的圆的颜色
lineDataSet.setCircleRadius(4f);//显示数据的圆的半径
lineDataSet.setCircleColors(Color.BLACK, Color.GRAY, Color.BLUE, Color.GREEN, Color.RED);//显