【问题标题】:How do I add labels to CPBarPlot barplots?如何向 CPBarPlot 条形图添加标签?
【发布时间】:2010-01-03 03:53:48
【问题描述】:

我对 Core Plot 完全陌生,并且有一个可用的条形图,但是除非我知道每个条形图代表哪个对象,否则视觉对我来说有点用处。我已经看到有一个名为“fieldIdentifiers”的方法,但不知道如何实现它,也找不到任何文档(如果这甚至是正确的方法)。你能引导我走向正确的方向吗?谢谢!

【问题讨论】:

    标签: iphone core-plot


    【解决方案1】:

    为了在核心绘图图表中手动设置轴的标签,您需要将该轴的 labelingPolicy 设置为 CPAxisLabelingPolicyNone 并自己提供标签。例如,以下代码将在条形图中设置自定义标签(取自我将在某些时候添加到 iPhone 示例应用程序中的代码):

    CPXYAxisSet *axisSet = (CPXYAxisSet *)barChart.axisSet;
    CPXYAxis *x = axisSet.xAxis;
    x.labelRotation = M_PI/4;
    x.labelingPolicy = CPAxisLabelingPolicyNone;
    NSArray *customTickLocations = [NSArray arrayWithObjects:[NSDecimalNumber numberWithInt:1], [NSDecimalNumber numberWithInt:5], [NSDecimalNumber numberWithInt:10], [NSDecimalNumber numberWithInt:15], [NSDecimalNumber numberWithInt:20], nil];
    NSArray *xAxisLabels = [NSArray arrayWithObjects:@"Label A", @"Label B", @"Label C", @"Label D", @"Label E", nil];
    NSUInteger labelLocation = 0;
    NSMutableArray *customLabels = [[NSMutableArray alloc] initWithCapacity:[xAxisLabels count]];
    for (NSNumber *tickLocation in customTickLocations)
    {
        CPAxisLabel *newLabel = [[CPAxisLabel alloc] initWithText: [xAxisLabels objectAtIndex:labelLocation++] textStyle:x.labelTextStyle];
        newLabel.tickLocation = [tickLocation decimalValue];
        newLabel.offset = x.labelOffset + x.majorTickLength;
        newLabel.rotation = M_PI/4;
        [customLabels addObject:newLabel];
        [newLabel release];
    }
    
    x.axisLabels =  [NSSet setWithArray:customLabels];
    

    这会在 X 轴上的位置 1、5、10、15 和 20 设置五个自定义标签(标签 A、B、C、D 和 E)。

    【讨论】:

    • 你是我的英雄。我能够将您编写的内容合并到我的代码中,以获得美味的 label-y 图表。您是否玩过在条形尖端设置标签的新功能?它在 Mac 的 CPTestApp 中,但对我来说是不透明的。
    • Drew 几天前刚刚添加了这个,我不太明白它是如何工作的。它与 -barLabelForBarPlot:recordIndex: 委托方法有关,但我无法在我的代码中复制效果。
    • 您好,如果您手动为轴设置标签,当条形图的值发生变化时,轴标签的位置会受到干扰如何解决此问题?
    猜你喜欢
    • 1970-01-01
    • 2016-12-15
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多