MPandroidchart一些点的颜色不变

时间:2019-08-06 04:53:52

标签: android mpandroidchart

我正在制作散点图,如果值超过特定值,

点的颜色已更改。

我写了这样的代码。

for (int i = 0; i < 30; i++) 
{  
       float y = (float) (Math.random()*0.2+0.1);
       value1.add(new Entry(i, y));

        if(y>=0.2f)
        {
            colors.add(getBaseContext().getResources().getColor(R.color.color_red));
        }
        else
            colors.add(getBaseContext().getResources().getColor(R.color.color_skyblue));
       }
}

结果在下面。

enter image description here

如您所见,有一行。

上面的颜色应该是红色,下面的颜色应该是蓝色。

您会看到图表下方的正方形。

例如,

正方形的数量与圆形的数量相同,9

但是只有一个圆圈是蓝色的。

我认为我的代码没有问题。

但显然存在问题。

请让我解决这个问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以为参考上方和下方的点创建两组,并为两组分配颜色。

ArrayList<Entry> aboveLevel = new ArrayList<>();
ArrayList<Entry> belowLevel = new ArrayList<>();

for (int i = 0; i < 30; i++){
    float y = (float) (Math.random()*0.2+0.1);
    if (y>=0.2f) {
       aboveLevel.add(new Entry(i, y));
    } else {
       belowLevel.add(new Entry(i, y));
    }
}

ScatterDataSet set1 = new ScatterDataSet(aboveLevel, "Above");
set1.setColor(ColorTemplate.COLORFUL_COLORS[0]);

ScatterDataSet set2 = new ScatterDataSet(belowLevel, "Below");
set2.setColor(ColorTemplate.COLORFUL_COLORS[1]);

ArrayList<IScatterDataSet> dataSets = new ArrayList<>();
dataSets.add(set1); // add the data sets
dataSets.add(set2);

// create a data object with the data sets
ScatterData data = new ScatterData(dataSets);

chart.setData(data);