1

为什么在字符串标签中找不到与 CPTAxisLabelingPolicyNone 不同的 labelingPolicy ???

x.labelingPolicy = CPTAxisLabelingPolicyNone;

在此处输入图像描述

我想要这个 GRIDLineStyle,但带有我的文本标签:

x.labelingPolicy = CPTAxisLabelingPolicyFixedInterval

在此处输入图像描述

我使用以下代码完成 xAxisLabels:

NSMutableArray *labels = [[NSMutableArray alloc] initWithCapacity:[labelsAxisX count]];
    int idx = 0;
    for (NSString *product in labelsAxisX)
    {
        CPTAxisLabel *label = [[CPTAxisLabel alloc] initWithText:product textStyle:x.labelTextStyle];
        label.tickLocation = CPTDecimalFromInt(idx);
        label.offset = 5.0f;
        [labels addObject:label];
        [label release];
        idx++;
    }

    x.axisLabels = [NSSet setWithArray:labels];
    [labels release];
4

1 回答 1

1

使用CPTAxisLabelingPolicyNone标签策略,除了制作标签外,您还需要提供刻度位置(主要和/或次要)。如果您更愿意使用固定间隔标签策略,您可以为返回文本标签而不是数字的轴制作自定义数字格式化程序。

这是一个改编自 Plot Gallery 示例应用中的 Labeling Policy Demo 的示例:

NSMutableSet *tickLocations = [NSMutableSet set];
for ( NSUInteger loc = 0; loc < labelsAxisX.count; loc++ ) {
    [tickLocations addObject:[NSDecimalNumber numberWithUnsignedInteger:loc]];
}
axis.majorTickLocations = tickLocations;

次要刻度位置的工作方式相同。

于 2012-05-25T16:56:22.010 回答