【问题标题】:Core Plot - Creating a graph of increasing size based on realtime dataCore Plot - 根据实时数据创建大小不断增加的图形
【发布时间】:2012-06-29 20:36:50
【问题描述】:

我已经进行了一些搜索,但没有发现有人尝试过类似的事情,所以我想我在这里问一下。我要做的基本上是创建一个图表,每隔 5 秒获取一次数据并绘制它。到目前为止,我所做的最好的事情是允许用户围绕静态图的静态图进行平移。

我目前正在尝试达到可以按一个按钮的位置,它将根据 X 轴的稳定时间间隔和从 1 到 100 的随机数在图表上创建一个新点Y 轴。我的尝试如下:

@synthesize scatterPlot = _scatterPlot;
@synthesize statusLabel, data, isPlotting;

CGFloat xCoord;

- (void)startPlot:(id)sender {

    if (isPlotting == FALSE) {
        xCoord = 0;
    }

    if (isPlotting == TRUE)
    {
        statusLabel.text = @"Starting Plot";

        xCoord += 5;
        [data addObject:[NSValue valueWithCGPoint:CGPointMake(xCoord, (arc4random() % 100 + 1))]];

        self.scatterPlot = [[TUTSimpleScatterPlot alloc] initWithHostingView:_graphHostingView andData:data];
        [self.scatterPlot initialisePlot];

        [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(startPlot:) userInfo:nil repeats:NO];
    }
}

- (void)endPlot:(id)sender {
    statusLabel.text = @"Plotting Stopped";
    isPlotting = FALSE;
}

这基本上是我尝试完成所描述任务的核心。这个想法是我按下调用 startPlot 并将 isPlotting 值设置为 true 的“开始”按钮,然后我增加我的 xCoord 值,这将是任意时间5,持续 5 秒,然后生成新点并将其添加到名为 data 的 NSMutableArray 数组中。之后,我重新初始化我的散点图并启动一个定时器休眠 5 秒,然后再次调用 startPlot 函数。

我遇到的问题是它要么没有更新,要么我得到一个没有点的空白 X 和 Y 轴。无论如何,我缺少一些我希望有人知道并可以帮助我的东西!

谢谢! -卡罗利

【问题讨论】:

    标签: iphone objective-c ios5 core-plot


    【解决方案1】:

    您所描述的是实时绘图,就像示波器一样,对吧?你看过示例应用程序吗?特别是实时情节中的情节画廊项目?应该就是这样,它在示例文件夹中。

    查看RealTimePlot 类(在项目树中,在 Plots 组下),基本上所做的是设置一个调用方法 -(void)newData:(NSTimer *)theTimer 的计时器,向数据数组添加一个新点,重绘并移动CPTPlotRanges.

    您使用的是什么版本的 CorePlot?

    【讨论】:

    • 对不起,回复晚了,听起来很棒,今天就来看看。我看完后会回帖。我用的是v1.0,上周刚下载CorePlot。
    • 查看了 RealTimePlot 类文件,它们看起来很有用,特别是您提到的 newData 函数。感谢您的信息!
    猜你喜欢
    • 2022-01-25
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2023-02-09
    • 2016-06-17
    相关资源
    最近更新 更多