如何在iPhone上的散点图上绘制多个数据集(每个数据集的颜色不同)?

时间:2011-12-05 11:28:21

标签: iphone objective-c core-plot

这里我没有为dataForPlot添加任何坐标(这是一个可变数组)。我试图在这里显示一组坐标。所以我在numberOfRecordsForPlot方法中返回了[dataForPlot count]。这个工作正常。

但现在我有不同的坐标集(即我在viewDidLoad方法中使用的循环4到5)

我想在每个集合中以不同颜色显示那些4到5集/记录。 我应该在numberOfRecordsForPlot方法中返回什么以及numberForPlot方法中需要进行哪些更改?我应该如何实现?

我是核心情节的新手。

- (void)viewDidLoad 
{
    [super viewDidLoad];
    NSMutableArray *contentArray = [NSMutableArray arrayWithCapacity:100];
    NSUInteger i;
    for ( i = 0; i < 60; i++ ) {

       id x = [NSNumber numberWithFloat:1+i*0.05];
       id y = [NSNumber numberWithFloat:1.2*rand()/(float)RAND_MAX + 1.2];
       [contentArray addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:x, @"x", y, @"y", nil]];
   }
self.dataForPlot = contentArray;
}


-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot 
{
    return [dataForPlot count];
}


-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{
     NSDecimalNumber *num = nil;

    num = [[dataForPlot objectAtIndex:index] valueForKey:(fieldEnum == CPTScatterPlotFieldX ? @"x" : @"y")];

   return num;
}

1 个答案:

答案 0 :(得分:1)

首先,您应该阅读示例代码。 CPTTestAPP-iPhone。它有两个散点图。绿色和蓝色。

所有示例src代码都包含在CorePlot包中。

如果您的应用程序适用于iOS5和ARC(自动引用计数),则应使用Mercurial下载最新的完整CorePlot程序包。因为0.90版本不包括最近对ARC的修改。

- (NSUInteger)numberOfRecordsForPlot :( CPTPlot *)图 - (NSNumber *)numberForPlot:(CPTPlot *)绘图字段:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index

以上两个meshods是CPTPlot的数据源。 即使您有许多散点图,每个散点图也可以有标识符。因此,数据源可以确定谁是真正的客户。