我正在设计一个图表,上面会有多个散点图。每个数据集的散点图数量都会发生变化。我试图通过颜色来区分散点图,但是我遇到了一些麻烦。
目前,我有一个for循环,它为数组中的每个对象创建一个散点图。在for循环中,我根据随机数设置了一种颜色:
lineStyle.lineColor = [CPTColor colorWithComponentRed:((arc4random()%255)/255.0)green:((arc4random()%255)/255.0)blue:((arc4random()%255)/255.0)alpha: 1.0];
这有时会起作用,但颜色有时可能太难以与其他颜色区分开来,或者可能完全是白色。是否有更好的方法来生成随机颜色(可能类似于饼图生成颜色的方式)?
答案 0 :(得分:1)
我不认为在这些问题中确实存在任何核心情节,它只是一个以编程方式生成配色方案的问题。
作为一个如何做到这一点的想法,而不仅仅是纯随机数,这是一些几乎伪造的代码,我会怎么做:
float red = 0;
float blue = 0;
float green = 0;
while(need more colors){
float colorToInc = (arc4Random()%100)/100;
float incValue = (arc4Random()%100)/500;//value between 0 and .2
if(colorToInc < .3){
red += incValue;
if(red > 1)
red -= 1;
}else if(colorToInc < .7){
green += incValue;
if(green > 1)
green -= 1;
}else{
blue += incValue;
if(blue > 1)
blue -= 1;
}
newcolor = [color with red:red blue:blue green:green];
}
答案 1 :(得分:0)
以下适用于我:
red = (arc4random()%100)/100.0;
green = (arc4random()%100)/100.0;
blue = (arc4random()%100)/100.0;
[UIColor colorWithRed:red green:green blue:blue alpha:1];