Как отобразить значения подсказок для каждого графика в многослойной панели, созданной Core-plot?

Мне нужна помощь с этим, пожалуйста, помогите мне. Вот моя ситуация:

Вот что у меня сейчас

Это то, что у меня сейчас. Красный график имеет значение 190. А желтый график имеет значение 63,3. Я хочу построить красный над желтым. Это означает, что желтый график имеет baseValue= 0, а красный график имеет baseValue = значение наконечника желтого цвета. Я использовал CPTBarPlotFieldBarBase, чтобы изменить baseValue красного графика (set barBaseValue= Yes). Как я и ожидал, общая стоимость обоих участков по этому показателю = 190+63,3=253,3. К сожалению, итоговый результат составляет всего 190, что является значением только красного графика.

Таким образом, у меня вопрос, как я могу по-прежнему отображать значения графика графиков в этом формате, но общая высота 2 графиков по этому индексу должна быть 253,3(мне не нужно отображать это число). Я просто хочу, чтобы высота графика выглядела правильно, как эта

введите описание изображения здесь

Этот участок имеет общую стоимость 97, что немного ниже 100.

Пожалуйста, помогите мне. Я ценю помощь.

2 ответа

Решение

Базовый график не выполняет расчеты за вас. Сделайте значение наконечника красной полосы 253,3 (190 + 63,3).

Хорошо, просто хочу поделиться. Как указал Эрик: "Сделайте верхушку красной полоски 253,3 (190 + 63,3)", но он не упомянул как. Вот как я это сделал. Сначала нарисуйте красную полосу со значением, равным 2 значениям (красный + желтый). Затем нарисуйте желтую полосу, перекрывающую красную, и она имеет то же самое базовое значение, что и красная. Вот хитрость, когда я маркирую красный график, я использовал его фактическое значение, которое не является общим значением. А вот и функция, которую я использовал для изменения меток.

-(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)index {
CPTTextLayer *label;
if (red_plot.identifier){
    label = [[CPTTextLayer alloc] initWithText:[NSString stringWithFormat:@"%@", [_charDataOfRed objectAtIndex:index]]]; 
}
else{
    label = [[CPTTextLayer alloc] initWithText:[NSString stringWithFormat:@"%@", [_charDataOfYellow objectAtIndex:index]]]; 
}
CPTMutableTextStyle *textStyle = [label.textStyle mutableCopy];
textStyle.color = [CPTColor redColor];
label.textStyle = textStyle;
[textStyle release];
return [label autorelease];

Надеюсь, что это может помочь!

Другие вопросы по тегам