码迷,mamicode.com
首页 > 移动开发 > 详细

MPAndroidChart开源图表库之折线图

时间:2015-07-19 11:40:17      阅读:739      评论:0      收藏:0      [点我收藏+]

标签:

参考:http://blog.csdn.net/shineflowers/article/details/44704723

 

1.在布局文件中加入组件

<com.github.mikephil.charting.charts.LineChart

        android:id="@+id/char1"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:layout_margin="10dp"

        android:layout_weight="1.0"

        />

 

 

2.设置图表的属性

        chart1 = (LineChart) findViewById(R.id.char1);

 

        lineChart.setDrawBorders(false);  //是否在折线图上添加边框    

        lineChart.setDescription("");// 数据描述  

        lineChart.setDescriptionTypeface(mTf);//字体

        // 如果没有数据的时候,会显示这个,类似listview的emtpyview   

//      lineChart.setNoDataTextDescription("You need to provide data for the chart.");    

        lineChart.setDrawGridBackground(false); // 是否显示表格颜色    

//        lineChart.setGridBackgroundColor(Color.WHITE & 0x70FFFFFF); // 表格的的颜色,在这里是是给颜色设置一个透明度    

        lineChart.setTouchEnabled(true); // 设置是否可以触摸    

        // enable scaling and dragging    

        lineChart.setDragEnabled(true);// 是否可以拖拽

        lineChart.setScaleEnabled(true);// 是否可以缩放

        lineChart.setPinchZoom(false);    

        lineChart.setBackgroundColor(Color.WHITE);// 设置背景    

       

        //设置最大值和最小值的标注线

        LimitLine ll1 = new LimitLine(100f, "最大值");

        ll1.setLineWidth(4f);

//        ll1.enableDashedLine(10f, 10f, 0f);//设置为虚线。

        ll1.setLabelPosition(LimitLabelPosition.POS_LEFT);

        ll1.setTextSize(10f);

 

        LimitLine ll2 = new LimitLine(10f, "最小值");

        ll2.setLineWidth(4f);

//        ll2.enableDashedLine(10f, 10f, 0f);

        ll2.setLabelPosition(LimitLabelPosition.POS_LEFT);

        ll2.setTextSize(10f);

        

 

        //X轴样式。

        XAxis xAxis = lineChart.getXAxis();

        xAxis.setPosition(XAxisPosition.BOTTOM);

        xAxis.setTypeface(mTf);

        xAxis.setDrawGridLines(false);

        xAxis.setDrawAxisLine(true);

        

        //Y轴样式。

        YAxis leftAxis = lineChart.getAxisLeft();

        leftAxis.setTypeface(mTf);

        leftAxis.setLabelCount(10);

        leftAxis.addLimitLine(ll1);

        leftAxis.addLimitLine(ll2);

 

        //设置图例样式。

        Legend mLegend = lineChart.getLegend(); // 设置比例图标示,就是那个一组y的value的    

        mLegend.setForm(LegendForm.CIRCLE);// 样式    

        mLegend.setFormSize(6f);// 字体    

        mLegend.setTextColor(Color.BLACK);// 颜色    

        mLegend.setTypeface(mTf);// 字体    

 

        //图表动画。

        lineChart.animateX(2000); // 立即执行的动画,x轴 

        lineChart.animateY(1000); // 立即执行的动画,y轴  

 

3.生成图表的数据

        

        // x轴显示的数据,这里默认使用数字下标显示  

        ArrayList<String> xValues = new ArrayList<String>();    

        for (int i = 0; i < count; i++) {    

            xValues.add("" + i);    

        }    

    

        // y轴的数据    

        ArrayList<Entry> yValues = new ArrayList<Entry>();    

        for (int i = 0; i < count; i++) {    

            float value = (float) (Math.random() * range) + 3;    

            yValues.add(new Entry(value, i));    

        }    

 

        // create a dataset and give it a type    

        // y轴的数据集合    

        LineDataSet lineDataSet = new LineDataSet(yValues, "测试折线图" /*显示在比例图上*/);    

        // mLineDataSet.setFillAlpha(110);    

        // mLineDataSet.setFillColor(Color.RED);    

    

        //用y轴的集合来设置数据线和数据点的样式  

        lineDataSet.setLineWidth(1.75f); // 线宽    

        lineDataSet.setCircleSize(4.5f);// 显示的圆形大小    

        lineDataSet.setColor(color);// 线的颜色    

        lineDataSet.setCircleColor(color);// 圆形的颜色    

        lineDataSet.setHighLightColor(Color.rgb(244, 117, 117)); // 高亮的线的颜色    

 

        // create a data object with the datasets    

        LineData lineData = new LineData(xValues, lineDataSet);//生成数据

 

============================================================

 

        //将数据集合加入到ArrayList中。生成的LineData可以在一个图表上生成多条数据线。

        ArrayList<LineDataSet> lineDataSets = new ArrayList<LineDataSet>();    

        lineDataSets.add(lineDataSet); //添加DataSet

        LineData lineData = new LineData(xValues, lineDataSets);  //使用ArrayList设置生成数据。

==============================================================

 

4.将数据绑定到图表。

    lineChart.setData(lineData); // 设置数据  

 

参考:http://blog.csdn.net/shineflowers/article/details/44704723

MPAndroidChart开源图表库之折线图

标签:

原文地址:http://www.cnblogs.com/blueice-007/p/4658277.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!