我正在使用MPAndroid Chart Library绘制折线图,我在LineChart上设置动态数据,但有时我将某些索引的数据作为值0.0,并且我不希望在任何索引上显示0.0值。 如何跳过具有0.0值的索引。
ArrayList<Entry> entries = new ArrayList<>();
entries.add(new Entry(23.00f, 0));
entries.add(new Entry(40.00f, 1));
entries.add(new Entry(00.00f, 2)); // want to skip this index 2(Mar)
entries.add(new Entry(00.00f, 3)); // want to skip this index 3 (Apr)
entries.add(new Entry(94.00f, 4));
entries.add(new Entry(20.00f, 5));
但我想得到像这样的东西
关于这个的任何想法?
由于
答案 0 :(得分:1)
如何添加多个数据集,一个用于图表的每个连续部分?
答案 1 :(得分:1)
您可以尝试从drawData
覆盖LineChartRender
方法并执行此操作:
int index = lineData.getDataSets().size();
for (ILineDataSet set : lineData.getDataSets()) {
if (set.getEntryForIndex(index).getY() != 0) {
if (set.isVisible()) {
drawDataSet(c, set);
}
}
c.drawBitmap(mDrawBitmap.get(), 0, 0, mRenderPaint);
}
}
答案 2 :(得分:0)
您的代码应该看起来像:
ArrayList<Entry> entries = new ArrayList<>();
entries.add(new Entry(23.00f, 0));
entries.add(new Entry(40.00f, 1));
// entries.add(new Entry(00.00f, 2)); // want to skip this index 2(Mar)
// entries.add(new Entry(00.00f, 3)); // want to skip this index 3 (Apr)
entries.add(new Entry(94.00f, 4));
entries.add(new Entry(20.00f, 5));
lib会自动绘制它,如截屏2所示。
答案 3 :(得分:0)
最后,经过大量Internet搜索,我找到了解决方案。 我尝试了许多解决方案,但就我而言,最适合的问题也是。
假设我们正计划从xAxix隐藏无用的序列值,请获取轴
B[j]
其中For N = 1e2, takes ~0.02 sec
For N = 1e3, takes ~0.05 sec
For N = 1e4, takes ~0.38 sec
For N = 1e5, takes ~3.80 sec
是原始数据源的数组。
上述解决方案只会绘制所需的标签,并且会删除不必要的序列数据。