【问题标题】:MPAndroidChart plots no dataMPAndroidChart 不绘制数据
【发布时间】:2020-08-08 01:22:33
【问题描述】:

我目前正在开发我的第一个 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 相关吗?

【问题讨论】:

  • 请发布您的代码,可能有多种原因。
  • 这里有一个如何添加饼图的例子,stackoverflow.com/questions/34528848/…
  • 嗨,我用更多代码更新了帖子。这都是在片段的 onCreateView 中执行的

标签: android mpandroidchart


【解决方案1】:

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

我基本上做了你所做的,像你一样制作一个片段和图表。唯一的区别是我的数据。我也创建了 150 个值(只是为了测试这是否太多或其他什么),但只是使用了 List&lt;float&gt; 来方便。

我的代码如下所示:

    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); 
    // loop until you have added 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();

对我来说,它在模拟器中工作。

你确定你的迭代器和数据是正确的吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    • 2017-05-24
    • 2017-09-25
    相关资源
    最近更新 更多