我正在使用核心情节在iPhone应用程序中显示用户体重,并且测试数据填充到数据源数组中,它可以完美地运行。但是当我手动输入数据,并且数据源数组中只有一个元素时,图形不会缩放到单点所在的图形上的适当位置。我的单个测试数据点是42,当图表出现时,它会放大到Y-Range 0-1,并且该点不在屏幕上。如果我将单个测试数据点设置为.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 :(得分:0)
-scaleToFitPlots:
方法没有足够的信息来自一个数据点来计算“合理的”轴范围。在这种情况下,请根据您拥有的数据自行设置xRange
和yRange
。