2012-04-03 77 views
3

我正在绘制一张图,其中我想用color来填充数据行下的区域,但问题是我想为不同的区间使用不同的颜色。请考虑以下内容图中的链接提供。核心绘图填充坐标和颜色之间的特定区域

Graph Link

在上图中我怎样才能填补(0,0)和(30,30)坐标之间的区域用绿色和红色的色彩休息?

编辑:我能够通过使用绿色区域和其它两个不同CPTScatterPlot.One为red.And解决我的问题我下面的代码添加到绘制数据源的方法。

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index; 
{   
     if ([(NSString *)plot.identifier isEqualToString:@"Green"]) 
     { 
      if(index<=30) 
      { 
     NSString *key = (fieldEnum == CPTScatterPlotFieldX ? @"x" : @"y"); 
     num = [[plotData objectAtIndex:index] valueForKey:key]; 

     if (fieldEnum == CPTScatterPlotFieldY) { 
      num = [NSNumber numberWithDouble:[num doubleValue]]; 
     } 
      } 

     } 
    else if([(NSString *)plot.identifier isEqualToString:@"Red"]) 
    { 
     if(index>=30) 
     { 
     NSString *key = (fieldEnum == CPTScatterPlotFieldX ? @"x" : @"y"); 
     num = [[plotData objectAtIndex:index] valueForKey:key]; 

     if (fieldEnum == CPTScatterPlotFieldY) { 
      num = [NSNumber numberWithDouble:[num doubleValue]]; 
     } 
     } 
    }              
    return num; 
} 
+0

我认为这是可能的阴谋阴谋,请搜索更多的代码,你一定会得到方法,否则我会帮助。 – 2012-04-03 10:58:04

+0

您是否可以使用颜色填充图表下方的区域? – tipycalFlow 2012-04-03 12:49:13

+0

@tipycalFlow是的,我能够填补它。 – user1249508 2012-04-03 12:55:06

回答

2

我是能够通过使用两种不同CPTScatterPlot.One绿色区域和其它用于red.And添加以下代码来绘制的数据源的方法来解决我的问题。

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index; 
{   
     if ([(NSString *)plot.identifier isEqualToString:@"Green"]) 
     { 
      if(index<=30) 
      { 
     NSString *key = (fieldEnum == CPTScatterPlotFieldX ? @"x" : @"y"); 
     num = [[plotData objectAtIndex:index] valueForKey:key]; 

     if (fieldEnum == CPTScatterPlotFieldY) { 
      num = [NSNumber numberWithDouble:[num doubleValue]]; 
     } 
      } 

     } 
    else if([(NSString *)plot.identifier isEqualToString:@"Red"]) 
    { 
     if(index>=30) 
     { 
     NSString *key = (fieldEnum == CPTScatterPlotFieldX ? @"x" : @"y"); 
     num = [[plotData objectAtIndex:index] valueForKey:key]; 

     if (fieldEnum == CPTScatterPlotFieldY) { 
      num = [NSNumber numberWithDouble:[num doubleValue]]; 
     } 
     } 
    }              
    return num; 
}