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