Как добавить метки к гистограммам CPBarPlot?

StackOverflow https://stackoverflow.com/questions/1993925

  •  22-09-2019
  •  | 
  •  

Вопрос

Я совершенно новичок в Core Plot, и у меня есть рабочая гистограмма, но визуальный элемент для меня бесполезен, если я не знаю, какой объект представлен на каждой полосе.Я видел, что существует метод под названием «fieldIdentifiers», но не знаю, как его реализовать, и не могу найти никакой документации (если это даже правильный метод).Можете ли вы направить меня в правильном направлении?Спасибо!

Это было полезно?

Решение

Чтобы вручную установить метки для оси на диаграмме основного графика, вам необходимо установить для параметра 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];

При этом устанавливаются пять пользовательских меток (метка A, B, C, D и E) в позициях 1, 5, 10, 15 и 20 на оси X.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top