2013-10-30 84 views
0

我對io6編程相對比較陌生,並且在獲取核心圖以便將軸標籤放在我想要的位置上掙扎。我認爲刻度線位於正確的位置,但下面的代碼中標籤丟失。我想要在NSmutableArray xd上以均勻間隔排列的刻度線。但標籤值應該是刻度標記位置的指數值。任何人都可以提供建議嗎?核心標籤

在此先感謝

NSMutableArray *xd = [[dataClass sharedInstance] xGrid]; 

CPTXYAxis *x = axisSet.xAxis; 
x.labelingPolicy=CPTAxisLabelingPolicyNone; 

int totalNumberOfPoints = 10.0; 
int i = 0; 
NSMutableSet *xLabels = [NSMutableSet setWithCapacity:totalNumberOfPoints]; 
NSMutableSet *xLocations = [NSMutableSet setWithCapacity:totalNumberOfPoints]; 
while (i < totalNumberOfPoints) 
{ 
    NSNumber *xData = [NSNumber numberWithDouble:[[xd objectAtIndex:(i*100.0/totalNumberOfPoints)] doubleValue]]; 
    double xData2 = exp([[xd objectAtIndex:(i*100.0/totalNumberOfPoints)] doubleValue]); 
    CPTAxisLabel *label = [[CPTAxisLabel alloc] initWithText:[NSString stringWithFormat:@"%.2f", xData2] textStyle:x.labelTextStyle]; 
    label.tickLocation = CPTDecimalFromInt([xData doubleValue]); 
    label.offset = x.majorTickLength; 

    if (label) 
    { 
     [xLabels addObject:label]; 
     [xLocations addObject:xData]; 
    } 

    i ++; 
} 

編輯:我可能沒有明確。我遇到的問題是,使用上面的代碼,沒有標籤顯示在圖上。

+0

你想標上指數還是隻使用文本格式,如「2.0e5」或「2.0 x 10^5」? –

+0

指數值的大小都將足夠小,我不需要特殊的格式。只是%.2f。 – user2853230

回答

0

您必須將新標籤和打勾位置添加到軸。

axis.majorTickLocations = xLocations; 
axis.axisLabels = xLabels;