自v1.6.3起可用 - 不断改进。
为了将新数据添加到图表或动态删除数据,有多种方法可以将Entry对象从现有对象DataSet添加或删除或从现有ChartData对象添加或删除DataSet对象。
动态添加/删除数据的可能性
Class DataSet(和所有子类):
- addEntry(Entry e):将给定的Entry对象添加到DataSet。
Class ChartData(和所有子类):
- addEntry(Entry e, int dataSetIndex):将给定的数据集添加Entry到DataSet指定的数据集索引。
- addDataSet(DataSet d):将给定DataSet对象添加到ChartData对象。
除此之外,还有动态删除数据的方法:
Class DataSet(和所有子类):
- public boolean removeFirst():从条目数组中删除此DataSet的第一个条目(在索引0)。如果成功则返回true,否则返回false。
- public boolean removeLast():从条目数组中删除此DataSet的最后一个条目(索引大小为-1)。如果成功则返回true,否则返回false。
- public boolean removeEntry(Entry e):Entry从中删除给定的对象DataSet。成功返回true。
public boolean removeEntry(int xIndex):Entry从给定的x-index中删除DataSet。成功返回true。
Class ChartData(和所有子类):public boolea 大专栏 14.动态和实时数据n removeEntry(Entry e, int dataSetIndex):Entry从DataSet给定的数据集索引中删除给定的对象。成功返回true。
- public boolean removeEntry(int xIndex, int dataSetIndex):Entry从DataSet给定的数据集索引中删除给定的x- index。成功返回true。
- public boolean removeDataSet(DataSet d):DataSet从ChartData对象中删除给定的对象。成功返回true。
- public boolean removeDataSet(int index):DataSet从ChartData对象中删除给定的索引。成功返回true。
记住
在动态添加或删除数据后,notifyDataSetChanged() 必须在刷新之前调用。
//示例1
//将条目添加到“data”对象
exampleData.addEntry(...);
chart.notifyDataSetChanged(); //让图表知道它是数据变化的
chart.invalidate(); //刷新
//实施例2
//条目添加到“数据集”对象
dataSet.addEntry(...);
exampleData.notifyDataChanged(); //让数据知道一个dataSet更改的
chart.notifyDataSetChanged(); //让图表知道它是数据变化的
chart.invalidate(); //刷新
注意:方法moveViewTo(…)会自动调用invalidate()。
动态数据示例
有关如何实现动态数据添加/删除的示例,请参考示例应用程序和以下示例Activities:
- DynamicalAddingActivity
- RealtimeDataActivity