简体   繁体   English

如何使用MPAndroid图表库跳过折线图中特定索引的值?

[英]How to skip values on particular indexes in Line Chart using MPAndroid Chart Library?

I am using MPAndroid Chart Library for plotting Line Chart and I am setting dynamic data on LineChart but sometimes I am getting data as value 0.0 for some indexes and I don't want show 0.0 values on any index. 我正在使用MPAndroid图表库绘制折线图,​​并且在LineChart上设置了动态数据,但有时我为某些索引获取的数据值为0.0,而我不想在任何索引上显示0.0的值。 How can I skip indexes having 0.0 value. 如何跳过具有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));

Now i am getting like this 现在我变得这样 在此处输入图片说明

But i would like to get some thing like this 但我想得到这样的东西

在此处输入图片说明

Any Idea about this ? 有任何想法吗?

Thanks 谢谢

如何添加多个数据集,对于图形的每个连续部分,一个数据集呢?

You can try Override drawData method from LineChartRender and do this: 您可以尝试从LineChartRender重写drawData方法,并执行以下操作:

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);
    }
}

Your code should be looking as: 您的代码应为:

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));

The lib will draw it automatically as on screenshot 2. lib会如截图2所示自动绘制它。

Finally after a lot of Internet search , i found solution. 经过大量的互联网搜索,终于找到了解决方案。 I tried many solutions but in my case and best fit with question is as well. 我尝试了许多解决方案,但就我而言,最适合的问题也是。

Get the axis suppose we are planning to hide useless sequence value from the xAxix 假设我们计划从xAxix隐藏无用的序列值,请获取轴

xAxis.setLabelCount(originalValueArray.size, true)

where originalValueArray is the array of original data source. 其中originalValueArray是原始数据源的数组。

Above solution will only draw required label and it will remove unnecessary sequence data. 上述解决方案只会绘制所需的标签,并且会删除不必要的序列数据。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM