查看其他示例,我发现图表一次需要所有数据集,一旦准备好就不能迭代地添加它们。我错了吗?
ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
...
dataSets.add(d1);
dataSets.add(d2);
...
LineData data = new LineData(dataSets);
mChart.setData(data);
我的问题是我在数据库中保存了多个LineDataSet的必要数据,并通过LiveData访问它们。绘制单个LineDataSet很简单,因为我会在stuff.observe {}中编写该逻辑。
stuff.observe(this, goodStuff -> {
Data data = generateData(goodStuff);
mChart.setData(data);
});
但是现在我必须观察多个填充物,然后将多个填充物的数据设置到图表中。 如何实现呢?
答案 0 :(得分:1)
是的,您可以动态地/实时地添加数据,只需记住,您还需要通知图表有关观察者中数据的信息,
stuff.observe(this, goodStuff -> {
Data data = generateData(goodStuff);
mChart.setData(data);
mChart.notifyDataSetChanged(); // let the chart know it's data changed
mChart.invalidate(); // refresh chart
});
从here
查看更多信息