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 ++;
}

编辑:我可能不清楚。我遇到的问题是,使用上面的代码,图表上根本没有显示任何标签。

4

1 回答 1

0

您必须将新标签和刻度位置添加到轴。

axis.majorTickLocations = xLocations;
axis.axisLabels = xLabels;
于 2013-11-01T23:07:02.033 回答