我遇到了这个实现的问题:
if(blueActive) {
blueFormat = new LineAndPointFormatter(Color.rgb(0,0,255), null, null);
blue = new SimpleXYSeries(xArray,yArray, selectedDate);
Log.e(TAG , "blueActive");
cvPlot.addSeries(blue, blueFormat);
}
if(redActive) {
redFormat = new LineAndPointFormatter(Color.rgb(255,0,0), null, null);
red = new SimpleXYSeries(xArray,yArray, selectedDate);
Log.e(TAG , "redActive");
cvPlot.addSeries(red, redFormat);
}
if(greenActive) {
greenFormat = new LineAndPointFormatter(Color.rgb(0,255,0), null, null);
green = new SimpleXYSeries(xArray,yArray, selectedDate);
Log.e(TAG , "greenActive");
cvPlot.addSeries(green, greenFormat);
}
cvPlot.redraw();
使用正确的xArray和yArray绘制系列,但是当重绘图形时,所有绘图都是相同的颜色。我正在寻找这个代码用三种不同的颜色重绘图。我在这里做了一些逻辑错误吗?
答案 0 :(得分:0)
虽然这个问题与其他代码没有很大的描述性,但最终的答案是将其添加到onClick中,开始添加图表的过程:
xArray.clear(); yArray.clear();
线条重叠,当添加下一个颜色时,由于在蓝色之后选择了红色图形,因此两个阵列增长到包括蓝色和红色的点,使得它看起来颜色没有变化。换句话说,红色阵列包括蓝色阵列,由于这些点与蓝色图相同,我看不到蓝色图,因为红色图是在顶部!
我已经在这个问题出现之前设置了一个Log.d,但实际上并没有注意到数组加倍,因为我没有记录计数,因为我只想看到x和y值正在填充。
记录您的阵列计数并清除阵列rook dawg !!