MPAndroidChart没有数据

时间:2016-01-19 16:28:03

标签: android mpandroidchart

我目前正在开发我的第一款Android应用。我需要可视化一些数据,我为此选择了MPAndroidChart v2.2.0(没有特殊原因,只是看起来正确)。

但是,我创建了一个包含150个数据点和150 x值的LinedDataSet,我将它们组合在一个LineData对象中并将其设置为图表的数据。基本上我只是阅读了文档并使用我自己的数据执行了这些步骤。

        mChart = (LineChart) myView.findViewById(R.id.chart);
// create data
        ArrayList<Entry> values = new ArrayList<Entry>();
        ArrayList<String> xVals = new ArrayList<String>();
        Iterator<PDSDataService.SampleProxyObject> sampleIT = sampleList.getSamplesList().iterator();

        while(sampleIT.hasNext())
        {
            PDSDataService.SampleProxyObject sample = sampleIT.next();

            Entry smp = new Entry((float)sample.getRawValues(0).getValue(),(int)sample.getSampleID());

            values.add(smp);
            xVals.add(String.valueOf(sample.getSampleID()));

        }


        LineDataSet setParam1 = new LineDataSet(values, mlistItem.toString());

        LineData data = new LineData(xVals,setParam1);

        mChart.setData(data);

        mChart.setAutoScaleMinMaxEnabled(true);
        mChart.invalidate();

现在,当我在AVD中启动应用程序时,图表显示(顺便说一句,它在片段中,如果这很重要),X轴和Y轴正确缩放,但在图表中,没有任何显示,没有线路或什么的。

我做错了什么?我无法在真实设备上测试应用程序,可能这个问题与AVD有关吗?

1 个答案:

答案 0 :(得分:0)

我看到这个问题仍然没有答案,所以我试图自己重现。

我基本上完成了你所做的事,像你一样创建片段和图表。唯一的区别是我的数据。我也创建了150个值(只是为了测试它是否太多或者其他东西),但只是使用List<float>来轻松。

我的代码如下所示:

    LineChart mChart = (LineChart) v.findViewById(R.id.chart);
    ArrayList<Entry> values = new ArrayList<Entry>();
    ArrayList<String> xVals = new ArrayList<String>();
    List<Float> list = new ArrayList<Float>();
    list.add(0.1f); .... until i have 150 values ... list.add(2.0f);

    for (int i = 0; i < list.size(); i++) {
        Entry smp = new Entry(list.get(i),i);
        values.add(smp);
        xVals.add(String.valueOf("Test "+i));
    }

    LineDataSet setParam1 = new LineDataSet(values, "Anything");
    LineData data = new LineData(xVals,setParam1);
    mChart.setData(data);
    mChart.setAutoScaleMinMaxEnabled(true);
    mChart.invalidate();

对我而言,它在模拟器中有效。

Simulator Screenshot

您确定您的迭代器和数据是否正确?