2013-07-17 4 views
0

iPhone 플롯에서 사용자 가중치를 표시하기 위해 코어 플롯을 사용하고 데이터 소스 배열에 테스트 데이터가 채워져 완벽하게 작동합니다. 그러나 수동으로 데이터를 입력 할 때 데이터 소스 배열에 요소가 하나만있는 경우 그래프는 단일 점이있는 그래프의 적절한 위치로 확장되지 않습니다. 내 단일 테스트 데이터 포인트는 42이고, 그래프가 나타나면 Y-Range 0-1로 확대되고 포인트는 화면을 벗어납니다. 단일 테스트 데이터 포인트를 .5로 설정하면이 테스트 데이터가 표시됩니다. 다른 점 (44)을 추가하면 그래프의 크기가 적절하게 조정되고 Y 범위 42-44가 표시됩니다.코어 플롯 스 캐터 플롯이 단 하나의 데이터 포인트로만 표시되지 않음

이 앱을 만들 때 저는 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을 자신이 보유한 데이터를 기반으로 설정하십시오.

관련 문제