核心问题:如何添加数据指标

时间:2010-02-24 11:04:18

标签: iphone objective-c cocoa-touch core-plot

我想在核心图中添加类似于下图的数据指示线。

Plot Image http://img203.imageshack.us/img203/9412/plota.png

任何想法如何使用核心情节来实现这一目标。我刚刚开始理解核心情节,所以任何提示都会非常有用。

谢谢

修改:

为了更好地理解,我创建了一个截屏视频来展示我的意思:

http://www.screencast.com/users/GauravVerma/folders/Jing/media/78fbef04-8785-46d6-9347-4f35d257109c

于2月26日添加:

我通过使用两个数据时隙解决了部分问题。这是当前的实现:

http://www.screencast.com/users/GauravVerma/folders/Jing/media/02a1e685-8bf8-41a9-aaa6-5ea6445f6a6c

我使用过两个数据槽,一个是主要的数据槽。另一个只绘制一个数据点,当滑块值改变时重新加载。

以下是我的数据源方法(可能会帮助某人):

-(NSUInteger)numberOfRecordsForPlot:(CPPlot *)plot {
    if ([(NSString *)plot.identifier isEqualToString:@"Blue Plot"]){
        return [dataForPlot count];
    }else {
        return 1;
    }

}

-(NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{
    if ([(NSString *)plot.identifier isEqualToString:@"Green Plot"]) {
        index = floor((double)[slider value]);
        if (index > [dataForPlot count] -1) {
            index = [dataForPlot count] -1;
        }
        NSLog(@"Green plot index : %f",index);
    }
    NSNumber *num = [[dataForPlot objectAtIndex:index] valueForKey:(fieldEnum == CPScatterPlotFieldX ? @"x" : @"y")];
    num = [NSNumber numberWithDouble:[num doubleValue] + 1.0];
    return num;
}

现在唯一的问题仍然是找出一种简单的方法来画线。任何想法??

1 个答案:

答案 0 :(得分:6)

目前还没有任何直接的方法可以在Core Plot中进行此类交互,但计划将来包含在内。

一种方法是将自己的UIView放在图形的顶部,并使用它来获取鼠标移动事件。

然后您可以选择显示红线:

1)添加第二个y轴,并根据鼠标事件定位

2)添加一个条形图,其中只有一个条形图,它在整个垂直空间上延伸

3)添加一个散点图,其中有两个点,一个在底部,一个在顶部。

这些都是黑客攻击,但它们都应该有效。