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();          //對圖表的顯示更新
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章