MPAndroidChart的详细使用——图表动态实时数据

动态图表在图表的应用中还是比较重要且常用的,这里就尽量细讲。

上一篇:MPAndroidChart的详细使用——Legend图例的详细设置
下一篇:MPAndroidChart的详细使用——图表描述的设置(右下角的那串英文)

注意:这一部分在官方文档中是没有的,因为官方文档说:不支持动态和实时数据

虽然官方说不支持动态数据,但是我们还是要想办法实现这个功能!

先看效果~
在这里插入图片描述

动态数据也分两种情况:1、在某组数据上添加(或删除)数据 2、在整个图表上再添加(或删除)一组数据

先来看第一种:在某组数据上添加或删除数据
在某组上添加或者删除数据,主要是对List进行操作,在List上添加数据或者移除数据,然后重新实例化一下DataSet对象和Data对象,图表重新使用SetData方法,最后对图表的数据以及显示进行更新!

//添加单个数据(多个数据也同理)
list.add(new Entry(list.size(),10));
lineDataSet=new LineDataSet(list,"语文");
lineData=new LineData(lineDataSet);
line.setData(lineData);
Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
line.notifyDataSetChanged();//对图表数据进行更新
line.invalidate();          //对图表的显示更新

//删除单个数据(多个数据也同理)
//这里选择移除List最后那个数据
list.remove(list.size()-1);
lineDataSet=new LineDataSet(list,"语文");
lineData=new LineData(lineDataSet);
line.setData(lineData);
line.notifyDataSetChanged();//对图表数据进行更新
line.invalidate();          //对图表的显示更新

再看第二种:在整个图表上再添加或删除一组数据
添加一组数据的话,只需要新建一个List,然后把你的数据添加进List,然后再创建一个DataSet对象,然后利用Data的addDataSet()方法把DataSet对象传入,最后进行更新就可以实现!

//新建一个数组 并且添加上数据
List<Entry>list2=new ArrayList<>();
list2.add(new Entry(0,10));
list2.add(new Entry(1,12));
list2.add(new Entry(2,14));
list2.add(new Entry(3,16));
//新建一个DataSet对象
LineDataSet lineDataSet2=new LineDataSet(list2,"数学");
//把新建的DataSet对象加入到Data对象中  注意:这里的Data对象是全局变量
lineData.addDataSet(lineDataSet2);
line.notifyDataSetChanged();//对图表数据进行更新
line.invalidate();          //对图表的显示更新

//移除一组数据的话就比较简单,只需要调用removeDataSet()方法移除想要移除的DataSet对象就行
lineData.removeDataSet(lineData.getDataSetCount()-1);//删除最后加上的那条
line.notifyDataSetChanged();//对图表数据进行更新
line.invalidate();          //对图表的显示更新
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章