2013-07-17 117 views
0

我正在使用核心图来显示iPhone应用程序中的用户权重,并将测试数据填充到数据源数组中,它完美地工作。但是,当我手动输入数据,并且数据源数组中只有一个元素时,该图不会缩放到单点所在图上的适当位置。我的单个测试数据点是42,当图形出现时,它放大到0-1的Y范围,并且该点在屏幕外。如果我将单个测试数据点设置为.5,则它是可见的。当我添加另一个点(44)时,图表会适当缩放并显示42-44的Y范围。核心图散点图不显示只有一个数据点

我在创建这个应用程序时严重依赖Ray Wenderlich tutorial。我认为plotSpace是什么决定了图形的范围是可见的(我对使用Core Plot还是很新的)。此代码几乎是从教程逐字:

// 1 - Get graph and plot space 
graph = self.hostView.hostedGraph; 
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace; 

//2 - Create the Weight plot 
weightPlot = [[CPTScatterPlot alloc] init]; 
weightPlot.dataSource = self; 
CPTColor *weightColor = [CPTColor greenColor]; 
[graph addPlot:weightPlot toPlotSpace:plotSpace]; 

// 3 - Set up plot space 
[plotSpace scaleToFitPlots:[NSArray arrayWithObjects:weightPlot, nil]]; 
CPTMutablePlotRange *xRange = [plotSpace.xRange mutableCopy]; 
[xRange expandRangeByFactor:CPTDecimalFromCGFloat(1.1f)]; 
plotSpace.xRange = xRange; 
CPTMutablePlotRange *yRange = [plotSpace.yRange mutableCopy]; 
[yRange expandRangeByFactor:CPTDecimalFromCGFloat(1.2f)]; 
plotSpace.yRange = yRange; 

感谢您的任何建议!我可以发布剩余的核心剧情代码,任何人都认为它会有所帮助。

回答

0

-scaleToFitPlots:方法没有足够的信息从一个数据点计算“合理的”轴范围。在这种情况下,请根据您拥有的数据自行设置xRangeyRange