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() { } }
MpAndroidChart 学习篇-线形图学习笔记
最新推荐文章于 2023-04-14 21:40:42 发布