Iphone 如果数据源具有相同的数据,则不打印图形的问题

Iphone 如果数据源具有相同的数据,则不打印图形的问题,iphone,ios,core-plot,Iphone,Ios,Core Plot,我在使用CorePlot框架绘制数据时遇到了一个问题。我有,下面是我正在工作的项目中的代码示例:livescatter 图表 如果我的数据源具有相同的值,则图形不打印 这是用于打印点的代码: #pragma mark - CPTPlotDataSource methods -(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot { return [appDelegate.arrayLiveValues count]; } -(NSNumb

我在使用CorePlot框架绘制数据时遇到了一个问题。我有,下面是我正在工作的项目中的代码示例:livescatter 图表

如果我的数据源具有相同的值,则图形不打印

这是用于打印点的代码:

#pragma mark - CPTPlotDataSource methods
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot {
    return [appDelegate.arrayLiveValues count];
}

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum 
                                       recordIndex:(NSUInteger)index 
{
    NSInteger valueCount = [appDelegate.arrayLiveValues count];
    switch (fieldEnum) {
        case CPTScatterPlotFieldX:
            if (index < valueCount) {
                return [NSNumber numberWithUnsignedInteger:index];
            }
            break;

        case CPTScatterPlotFieldY:
            return [appDelegate.arrayLiveValues  objectAtIndex:index];
            break;
    }
    return [NSDecimalNumber zero];
}

是的,我们必须根据我们的值设置最小-最大界限

    CGFloat xMin = 0.0f;
    CGFloat xMax = 40.0f;  //i need 40 plots 
    CGFloat yMin = 0.0f;
    CGFloat yMax = 300.0f;  // should determine dynamically based on max price
    plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(xMin) length:CPTDecimalFromFloat(xMax)];
    plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yMin) length:CPTDecimalFromFloat(yMax)];

假设arrayLiveValues是一个数字数组,这看起来很好。如何缩放打印空间?如果阵列包含与每个对象相同的数字,则其不打印。我认为,通过下面的方法,它设定了尺度。[plotSpace scaleToFitPlots:[NSArray arrayWithObjects:aaplPlot,无];如果所有数据点完全相同,绘图范围将以零长度结束。在缩放范围并根据需要进行调整后,需要检查X范围和Y范围,以便在所有情况下都能看到数据。
    CGFloat xMin = 0.0f;
    CGFloat xMax = 40.0f;  //i need 40 plots 
    CGFloat yMin = 0.0f;
    CGFloat yMax = 300.0f;  // should determine dynamically based on max price
    plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(xMin) length:CPTDecimalFromFloat(xMax)];
    plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yMin) length:CPTDecimalFromFloat(yMax)];