2012-01-04 4 views
1

CorePlot 사용법을 이해하려고합니다. 이전에는 그래프를 그리기 위해 Google 차트를 사용했습니다.CorePlot-iOS에서 축 고정

왼쪽 차트의 축을 설정하고 x 축과 y 축의 아래쪽에서 0을 시작하려고합니다. 그러나 코드 작동 방식을 이해할 수 없습니다.

// Setup plot space 
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace; 
plotSpace.allowsUserInteraction = YES; 
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(1.0) length:CPTDecimalFromFloat(2.0)]; 
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(1.0) length:CPTDecimalFromFloat(3.0)]; 

// Axes 
CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet; 
CPTXYAxis *x = axisSet.xAxis; 
x.majorIntervalLength = CPTDecimalFromString(@"0.5"); 
x.orthogonalCoordinateDecimal = CPTDecimalFromString(@"2"); 
x.minorTicksPerInterval = 2; 
NSArray *exclusionRanges = [NSArray arrayWithObjects: 
    [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(1.99) length:CPTDecimalFromFloat(0.02)], 
    [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.99) length:CPTDecimalFromFloat(0.02)], 
    [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(2.99) length:CPTDecimalFromFloat(0.02)], 
    nil]; 
x.labelExclusionRanges = exclusionRanges; 

CPTXYAxis *y = axisSet.yAxis; 
y.majorIntervalLength = CPTDecimalFromString(@"0.5"); 
y.minorTicksPerInterval = 5; 
y.orthogonalCoordinateDecimal = CPTDecimalFromString(@"2"); 
exclusionRanges = [NSArray arrayWithObjects: 
    [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(1.99) length:CPTDecimalFromFloat(0.02)], 
    [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.99) length:CPTDecimalFromFloat(0.02)], 
    [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(3.99) length:CPTDecimalFromFloat(0.02)], 
    nil]; 
y.labelExclusionRanges = exclusionRanges; 

누군가가 내가 무엇을해야하는지 말해 줄 수 있을까 - 여기

코드인가?

답변

3

(0, 0)에서 그래프를 시작하려면 x 및 y 범위와 교차점을 변경해야합니다. 당신은

plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0) length:CPTDecimalFromFloat(2.0)]; 

plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(1.0) length:CPTDecimalFromFloat(2.0)]; 

을 수정하여이 변경 또한 yRange 0으로 plotRangeWithLocation을 변경할 수 있습니다.

또한,이

x.orthogonalCoordinateDecimal = CPTDecimalFromString(@"2"); 

x.orthogonalCoordinateDecimal = CPTDecimalFromString(@"0"); 

에 변화와 y의 orthogonalCoordinateDecimal 위해 동일을 할 필요가있다.

1
NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease]; 
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[numberFormatter setGeneratesDecimalNumbers:NO]; 

axisSet = (CPTXYAxisSet *)graph.axisSet; 

x_axis = axisSet.xAxis; 
x_axis.majorIntervalLength = CPTDecimalFromString(@"1"); 
x_axis.orthogonalCoordinateDecimal = CPTDecimalFromString(@"0"); 
x_axis.minorTicksPerInterval = 0; 
x_axis.labelFormatter = numberFormatter; 

axisSet.xAxis.visibleRange =[CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(0) length:CPTDecimalFromInt(100)]; // you can set your number instead of 100 
axisSet.xAxis.gridLinesRange = axisSet.xAxis.visibleRange; 

y_axis = axisSet.yAxis; 
y_axis.majorIntervalLength = CPTDecimalFromString(@"1"); 
y_axis.orthogonalCoordinateDecimal = CPTDecimalFromString(@"0"); 
y_axis.minorTicksPerInterval = 1; 
y_axis.labelFormatter = numberFormatter; 

axisSet.yAxis.visibleRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromInt(0) length:CPTDecimalFromInt(100)]; // you can set your number instead of 100 
axisSet.yAxis.gridLinesRange = axisSet.yAxis.visibleRange; 
관련 문제