MpAndroidChart 学习篇-线形图学习笔记

来源:互联网 发布:注册码破解软件下载 编辑:程序博客网 时间:2024/05/21 16:59
package com.org.gsc.chartdemo;import android.graphics.Color;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.github.mikephil.charting.charts.LineChart;import com.github.mikephil.charting.components.LimitLine;import com.github.mikephil.charting.components.XAxis;import com.github.mikephil.charting.data.Entry;import com.github.mikephil.charting.data.LineData;import com.github.mikephil.charting.data.LineDataSet;import com.github.mikephil.charting.highlight.Highlight;import com.github.mikephil.charting.listener.OnChartValueSelectedListener;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements OnChartValueSelectedListener {    LineChart lc;    private List<Entry> yvals=new ArrayList<>();    private List<Entry>y2=new ArrayList<>();    private LineDataSet mdatas=new LineDataSet(yvals,"1");    private LineDataSet mdatas1=new LineDataSet(y2,"2");    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        System.out.println("-------"+getWindow().toString());//        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,//                WindowManager.LayoutParams.FLAG_FULLSCREEN);        setContentView(R.layout.activity_main);        initView();    }    /**     * 初始化控件     */    private void initView() {        lc= (LineChart) findViewById(R.id.lc);        initData1();        initData2();        lc.setData(new LineData(mdatas,mdatas1));//数据源多少条线就有多少个数据源    }    /**     * 设置第二条线     */    private void initData2() {        //做动画        lc.animateX(3000);        lc.animateY(3000);        MyMarkerView mv = new MyMarkerView(this, R.layout.custom_marker_view);        mv.setChartView(lc); // For bounds control        lc.setMarker(mv); // Set the marker to the chart        //设置点击选中的监听        lc.setOnChartValueSelectedListener(this);        //  lc.getXAxis().setEnabled(false);// x 轴不显示        lc.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);//设置坐标轴显示位置        lc.getXAxis().setDrawGridLines(false);//去掉与Y轴平行的线        lc.getXAxis().setTextColor(Color.GRAY);//设置X 轴字体颜色和大小        lc.getXAxis().setTextSize(20);        lc.getAxisLeft().setTextColor(Color.GREEN);//设置Y轴字体颜色和大小        lc.getAxisLeft().setTextSize(30);        lc.getXAxis().setSpaceMax(4);//设置X 轴的标签的距离        lc.getAxisLeft().setLabelCount(4,false);//设置Y轴标签个数        lc.getAxisLeft().setDrawGridLines(false);//去掉X轴平行的线        lc.getAxisLeft().setAxisLineColor(Color.GREEN);//设置Y轴颜色        lc.getDescription().setEnabled(false);//去掉描述文字        //设置X 轴限制线        LimitLine x=new LimitLine(3,"2");        x.setTextColor(Color.GREEN);        x.setTextSize(20);        x.setLineWidth(30);        x.setLineColor(Color.BLACK);        lc.getXAxis().addLimitLine(x);        //设置Y轴的限制线        LimitLine y=new LimitLine(2,"2y");        // lc.getAxisLeft().enableGridDashedLine(10f, 10f, 0f);        y.enableDashedLine(10f, 10f, 0f);// 设置分割线为虚线        y.setLineWidth(10);        y.setTextSize(40);        y.setLineColor(Color.GREEN);        y.setTextColor(Color.BLACK);        lc.getAxisLeft().addLimitLine(y);        //lc.getXAxis().setEnabled(false);//不显示X轴        lc.getAxisRight().setEnabled(false); //右y  轴 不显示        // lc.setDrawGridBackground(false);        // lc.getAxisLeft().setEnabled(false);// 左边y轴不显示        // lc.getXAxis().setDrawGridLines(true);        lc.getXAxis().setDrawLimitLinesBehindData(true);        lc.getXAxis().setAxisLineColor(Color.RED);//        lc.getAxisLeft().setGridColor(Color.GRAY);        //lc.getAxisRight().setDrawGridLines(false);        // lc.getAxisRight().setDrawGridLines(false);        for(int i=0;i<20;i++){            y2.add(new Entry(i, (float) (0.3*i)));        }        mdatas1 = new LineDataSet(y2, "2");//添加坐标点和标签       // ? LineDataSet.Mode.LINEAR       // :  LineDataSet.Mode.CUBIC_BEZIER        mdatas1.setMode(LineDataSet.Mode.STEPPED               );//设置线的模式及样式        mdatas1.setValueTextColor(Color.YELLOW);        mdatas1.setDrawFilled(true);//设置填充颜色是否显示        mdatas1.setDrawHighlightIndicators(true);//设置高亮指示器不显示默认不显示        // mdatas.setHighlightEnabled(true);//下面两句设置虚线        mdatas1.enableDashedLine(10f, 5f, 0f);        mdatas1.enableDashedHighlightLine(10f, 5f, 0f);        mdatas1.setValueTextSize(12f);        mdatas1.setColor(Color.BLACK);//设置线的颜色        //  mdatas.setDrawCircles(false);//设置不花圈点下句加上也无效        mdatas1.setCircleColor(Color.WHITE);//设置点的颜色        mdatas1.setCircleSize(5);//设置点的大小        mdatas1.setFillColor(Color.BLACK);//设置填充区域    }    private void initData1() {        //做动画        lc.animateX(3000);        lc.animateY(3000);        MyMarkerView mv = new MyMarkerView(this, R.layout.custom_marker_view);        mv.setChartView(lc); // For bounds control        lc.setMarker(mv); // Set the marker to the chart        //设置点击选中的监听        lc.setOnChartValueSelectedListener(this);        //  lc.getXAxis().setEnabled(false);// x 轴不显示        lc.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);//设置坐标轴显示位置        lc.getXAxis().setDrawGridLines(false);//去掉与Y轴平行的线        lc.getXAxis().setTextColor(Color.GRAY);//设置X 轴字体颜色和大小        lc.getXAxis().setTextSize(20);        lc.getAxisLeft().setTextColor(Color.GREEN);//设置Y轴字体颜色和大小        lc.getAxisLeft().setTextSize(30);        lc.getXAxis().setSpaceMax(4);//设置X 轴的标签的距离        lc.getAxisLeft().setLabelCount(4,false);//设置Y轴标签个数        lc.getAxisLeft().setDrawGridLines(false);//去掉X轴平行的线        lc.getAxisLeft().setAxisLineColor(Color.GREEN);//设置Y轴颜色        lc.getDescription().setEnabled(false);//去掉描述文字        //设置X 轴限制线        LimitLine x=new LimitLine(2,"aaa");        x.setTextColor(Color.GREEN);        x.setTextSize(20);        x.setLineWidth(30);        x.setLineColor(Color.BLACK);        lc.getXAxis().addLimitLine(x);        //设置Y轴的限制线        LimitLine y=new LimitLine(1,"YYY");        // lc.getAxisLeft().enableGridDashedLine(10f, 10f, 0f);        y.enableDashedLine(10f, 10f, 0f);// 设置分割线为虚线        y.setLineWidth(10);        y.setTextSize(40);        y.setLineColor(Color.GREEN);        y.setTextColor(Color.BLACK);        lc.getAxisLeft().addLimitLine(y);        //lc.getXAxis().setEnabled(false);//不显示X轴        lc.getAxisRight().setEnabled(false); //右y  轴 不显示        // lc.setDrawGridBackground(false);        // lc.getAxisLeft().setEnabled(false);// 左边y轴不显示        // lc.getXAxis().setDrawGridLines(true);        lc.getXAxis().setDrawLimitLinesBehindData(true);        lc.getXAxis().setAxisLineColor(Color.RED);//        lc.getAxisLeft().setGridColor(Color.GRAY);        //lc.getAxisRight().setDrawGridLines(false);        // lc.getAxisRight().setDrawGridLines(false);        for(int i=0;i<20;i++){            yvals.add(new Entry(i, (float) (0.1*i)));        }        mdatas = new LineDataSet(yvals, "1");//添加坐标点和标签        mdatas.setValueTextColor(Color.RED);        mdatas.setDrawFilled(true);//设置填充颜色是否显示        mdatas.setDrawHighlightIndicators(true);//设置高亮指示器不显示默认不显示        // mdatas.setHighlightEnabled(true);//下面两句设置虚线        mdatas.enableDashedLine(10f, 5f, 0f);        mdatas.enableDashedHighlightLine(10f, 5f, 0f);        mdatas.setValueTextSize(12f);        mdatas.setColor(Color.YELLOW);//设置线的颜色        //  mdatas.setDrawCircles(false);//设置不花圈点下句加上也无效        mdatas.setCircleColor(Color.GREEN);//设置点的颜色        mdatas.setCircleSize(5);//设置点的大小        mdatas.setFillColor(Color.YELLOW);//设置填充区域//        mdatas.setAxisDependency(YAxis.AxisDependency.RIGHT);    }    /**     * @param e The selected Entry     * @param h The corresponding highlight object that contains information     *          点选中的回调     */    @Override    public void onValueSelected(Entry e, Highlight h) {    }    /**     * 点没有选中的回调     */    @Override    public void onNothingSelected() {    }}
原创粉丝点击