【问题标题】:MPAndroidchart No chart Data availableMPAndroidchart 没有可用的图表数据
【发布时间】:2016-02-06 13:07:37
【问题描述】:

我在使用 MPAndroidChart 时遇到问题。 我正在向图表中添加温度和湿度数据,但它始终显示“没有可用的图表数据”。 这里有谁能看到我的错误在哪里? 我将非常感激!

//Create Data

                //set size of data
                int size = list.size();
                if (size > 24){ size = 24;}

                //create lists form temp and hum
                ArrayList<Entry> temps = new ArrayList<Entry>();
                ArrayList<Entry> hums = new ArrayList<Entry>();


                //fill list temp with values
                for (int i = 0; i < size; i++){
                    Entry value = new Entry(Math.round(list.get(list.size()-size + i).temp), (size-i));
                    temps.add(value);
                }

                //fill list hum with values
                for (int i = 0; i < size; i++){
                    Entry value = new Entry(Math.round(list.get(list.size()-size + i).hum), (size-i));
                    hums.add(value);
                }

                //other views on screen
                date.setText(dateString);
                time.setText(timeString);
                temp.setText(tempString);
                hum.setText(humString);


                //adding Data and description to array
                LineDataSet setTemp = new LineDataSet(temps, "Temperature");
                setTemp.setAxisDependency(YAxis.AxisDependency.LEFT);
                LineDataSet setHum = new LineDataSet(hums, "Humidity");
                setHum.setAxisDependency(YAxis.AxisDependency.LEFT);

                //adding Arrays to DataSet
                ArrayList<ILineDataSet> dataSets = new ArrayList<ILineDataSet>();
                dataSets.add(setTemp);
                dataSets.add(setHum);
                ArrayList<String> xVals = new ArrayList<String>();

                //Adding x values of range size
                for (int i = 0; i < size; i++ ){
                    xVals.add(String.valueOf(i));
                }

                //add Data and create chart
                LineData data = new LineData(xVals, dataSets);
                chart.setData(data);
                chart.invalidate();

            }
        });

【问题讨论】:

  • 尝试在Entry 构造函数中将(size-i) 更改为i。让我知道这是否有任何改变。
  • 您好 Philipp,感谢您查看我的问题。遗憾的是,这并没有解决问题。我一定是在某处使用了错误的代码。
  • 我最好的猜测是它与您的 size 变量有关。你试过删除它,看看会发生什么?
  • 嘿,您使用的是哪个版本的 MpAndroidchart。我使用的是 2.1.5,无法导入 ILineDataSet

标签: charts dataset mpandroidchart


【解决方案1】:

设置数据后需要调用:

 chart.invalidate();

刷新图表。

【讨论】:

    【解决方案2】:

    我看这篇文章很久了。我唯一能想到的就是这一行:

    Math.round(list.get(list.size()-size + i).hum
    

    .hum 是什么?它会为 Entry 生成不受支持的类型吗? 这个问题的解决方案让我非常感兴趣,因为 Phil J. 先生还没有找到答案。

    【讨论】:

      猜你喜欢
      • 2022-10-15
      • 2015-09-02
      • 2022-08-22
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 2021-04-17
      • 1970-01-01
      相关资源
      最近更新 更多