我正在制作散点图,如果值超过特定值,
点的颜色已更改。
我写了这样的代码。
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));
}
}
结果在下面。
如您所见,有一行。
上面的颜色应该是红色,下面的颜色应该是蓝色。
您会看到图表下方的正方形。
例如,
正方形的数量与圆形的数量相同,9
但是只有一个圆圈是蓝色的。
我认为我的代码没有问题。
但显然存在问题。
请让我解决这个问题。
谢谢。
答案 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);