我对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 :(得分:0)
您必须向轴添加新标签和刻度位置。
axis.majorTickLocations = xLocations;
axis.axisLabels = xLabels;