3

我有 xVals = " Su, Mo, Tu, Se, Th, Fr , Sa" 的折线图,我想代表 28 个点。

每个 xValue 4 分。(莫得4分,屠得4分,......)

我想在每个 xVal 中使用多个点来执行此操作。 在此处输入图像描述

现在我有,我明白为什么了。

One or more of the DataSet Entry arrays are longer than the x-values array of this ChartData object.

对于此消息错误,我将 xVals 与“ Su , Su, Su, Su, Mo, Mo, Mo, Mo, Tu, Tu, Tu, Tu, Th, Th, Th, Th, Fr, Fr, Fr, Fr , Sa, Sa, Sa, Sa”放在一起。但我需要在每个工作日汇总我的 xVals。

我该如何解决这个问题?

Filipe 这是您建议的结果:我只是将我的值替换为随机值。

float somefloatvalue = (float) ((Math.random() * xIndex) + 3);

在此处输入图像描述

4

1 回答 1

0

你想做的是容易实现。

您需要创建 4DataSet对象,每个对象包含 7 个值(每天一个)。

您的 x 值数组应该只包含 7 个值(每天一个)。

您可以在此处找到如何创建多个数据集的示例: https ://github.com/PhilJay/MPAndroidChart/blob/master/MPChartExample/src/com/xxmassdeveloper/mpchartexample/MultiLineChartActivity.java

简化示例:

    ArrayList<String> xVals = new ArrayList<String>();

    // add 7 days
    xVals.add("su"); xVals.add("mo"); xVals.add("tu"); xVals.add("we");
    xVals.add("th"); xVals.add("fr"); xVals.add("sa");

    ArrayList<LineDataSet> dataSets = new ArrayList<LineDataSet>();

    // create 4 datasets
    for (int z = 0; z < 4; z++) {

        ArrayList<Entry> values = new ArrayList<Entry>();

        // loop through 7 days (xIndex 0 == su)
        for (int xIndex = 0; xIndex < 7; xIndex ++) {
            float somefloatvalue = 1f;
            values.add(new Entry(somefloatvalue, xIndex));
        }

        LineDataSet d = new LineDataSet(values, "DataSet ");
        dataSets.add(d);
    }

    LineData data = new LineData(xVals, dataSets);
    mChart.setData(data);
    mChart.invalidate();
于 2015-02-07T16:58:54.637 回答