有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在使用MPAndroid图表库绘制折线图,并在折线图上设置动态数据,但有时我会将某些索引的数据设置为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));

现在我越来越像这样了 enter image description here

但我想得到这样的东西

enter image description here

你知道吗

谢谢


共 (4) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    您的代码应该如下所示:

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

    库将自动绘制它,如屏幕截图2所示

  3. # 3 楼答案

    您可以尝试从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);
        }
    }
    
  4. # 4 楼答案

    经过大量的网络搜索,我终于找到了解决方案。 我尝试了很多解决方案,但在我的情况下,最适合这个问题的也是

    获取轴假设我们计划从xAxix中隐藏无用的序列值

    xAxis.setLabelCount(originalValueArray.size, true)
    

    其中originalValueArray是原始数据源的数组

    上述解决方案将只绘制所需的标签,并将删除不必要的序列数据