我一直试图在情节下设置渐变:
//add gradient to line
CPTColor *underLineGradientStartColor = [CPTColor colorWithComponentRed:CPTFloat(0.0) green:CPTFloat(1.0) blue:CPTFloat(0.0) alpha:CPTFloat(1.0)];
CPTColor *underLineGradientEndColor = [CPTColor colorWithComponentRed:CPTFloat(1.0) green:CPTFloat(0.0) blue:CPTFloat(0.0) alpha:CPTFloat(1.0)];
CPTGradient *underLineGradient = [CPTGradient gradientWithBeginningColor:underLineGradientStartColor endingColor:underLineGradientEndColor];
underLineGradient.angle = -90.0;
CPTFill *underLineGradientFill = [CPTFill fillWithGradient:underLineGradient];
dataSourceLinePlot.areaFill = underLineGradientFill;
我还设置了areaBaseValues:
dataSourceLinePlot.areaBaseValue = @0;
dataSourceLinePlot.areaBaseValue2 = @255;
我要绘制的值在0-255范围内(绘图范围设置为常量)。但是,有时我会收到无效值(例如1000)。不显示不正确的值,因为它们超出范围。然而,渐变想要填充它们,结果渐变是不可见的(只有它的最低部分在屏幕上 - 不是全范围)。我怎样才能改变它?
答案 0 :(得分:1)
将数据源剪辑无效数据指向一个刚好超出绘图范围最大值的值。例如,如果绘图范围永远不会超过255,则对于任何无效数据点,数据源都将返回y值255.1。 255以上的填充是什么并不重要,因为它在绘图区域之外,你永远不会看到它。