2016-03-09 37 views
0

我一直在试图建立阴谋下的梯度:核心地块 - 梯度低于线

//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)。不正确的值不会显示,因为它们超出范围。但是,渐变要填充它们,并且结果中的渐变不可见(只有最下面的部分在屏幕上 - 不是全部范围)。我该如何改变它?

编辑: 这是现在的样子: enter image description here 我想有从0到255梯度(高于255的值可以是纯绿色)。

+0

您是否希望填充出现在无效值的下方或者您是否想填充空隙? –

+0

现在出现无效值,但它们被切割为255(最大范围 - 它是正确的)。我希望渐变最大值为255,上面的所有值都是纯绿色。 – izik461

回答

1

让数据源剪辑的无效数据点位于绘图范围的最大值之外。例如,如果绘图范围永远不会超过255,那么对于任何无效的数据点,使数据源返回255.1的y值。无论255以上的填充是什么都不重要,因为它在绘图区域之外,你永远不会看到它。

+0

这是我已经做的,以解决这个问题。我认为baseValues在CorePlot中意味着这么做。谢谢您的帮助。 – izik461