2012-06-11 3 views
2

Так что моя проблема проста. Я пытаюсь переключить диаграмму с гистограммы на линейный график, но моя линейная диаграмма не показывает/сюжет. Я использую аналогичный код для моей «Таблицы диаграмм CPTBarPlot», и этот график/показывает правильно.Core Plot CPTScatterPlot 'Line Graph' не отображается

My Bar Code Заговор, который строит правильно является:

CPTBarPlot *barPlot    = nil;  
barPlot       = [CPTBarPlot tubularBarPlotWithColor:[CPTColor colorWithComponentRed:0.9294f green:0.3960f blue:0.5921f alpha:1.0f] horizontalBars:NO]; 
barPlot.fill     = [CPTFill fillWithColor:[CPTColor colorWithComponentRed:0.9294f green:0.3960f blue:0.5921f alpha:1.0f]]; 
barPlot.opacity     = 0.8f; 
barPlot.dataSource    = self; 
barPlot.delegate    = self; 
barPlot.baseValue    = CPTDecimalFromString(@"0"); 
barPlot.barOffset    = CPTDecimalFromFloat(0.50f); 

switch (graphType) { 
    case kWeightThreeMonth: 
    { 
     barPlot.identifier = [GraphsViewController threeMonthBarPlotIdentifier]; 
    } 
     break; 

    case kWeightSixMonth: 
    { 
     barPlot.identifier = [GraphsViewController sixMonthBarPlotIdentifier]; 
    } 
     break; 

    case kWeightNineMonth: 
    { 
     barPlot.identifier = [GraphsViewController nineMonthBarPlotIdentifier]; 
    } 
     break; 
    default: 
     break; 
} 
barPlot.barCornerRadius   = 2.0f; 
barPlot.lineStyle    = nil; 
[lineGraph addPlot:barPlot toPlotSpace:plotSpace]; 

Моя линия участка Код, который не показывает это:

// Create a blue plot area 
CPTScatterPlot *boundLinePlot = [[[CPTScatterPlot alloc] init] autorelease]; 
CPTMutableLineStyle *lineStyle = [CPTMutableLineStyle lineStyle]; 
lineStyle.miterLimit   = 1.0f; 
lineStyle.lineWidth    = 3.0f; 
lineStyle.lineColor    = [CPTColor redColor]; 
boundLinePlot.dataLineStyle  = lineStyle; 
switch (graphType) { 
    case kWeightThreeMonth: 
    { 
     boundLinePlot.identifier = [GraphsViewController threeMonthBarPlotIdentifier]; 
    } 
     break; 

    case kWeightSixMonth: 
    { 
     boundLinePlot.identifier = [GraphsViewController sixMonthBarPlotIdentifier]; 
    } 
     break; 

    case kWeightNineMonth: 
    { 
     boundLinePlot.identifier = [GraphsViewController nineMonthBarPlotIdentifier]; 
    } 
     break; 
    default: 
     break; 
} 

boundLinePlot.dataSource = self; 
boundLinePlot.delegate  = self; 
[lineGraph addPlot:boundLinePlot toPlotSpace:plotSpace]; 

// Do a blue gradient 
CPTColor *areaColor1  = [CPTColor colorWithComponentRed:0.3 green:0.3 blue:1.0 alpha:0.8]; 
CPTGradient *areaGradient1 = [CPTGradient gradientWithBeginningColor:areaColor1 endingColor:[CPTColor clearColor]]; 
areaGradient1.angle   = -90.0f; 
CPTFill *areaGradientFill = [CPTFill fillWithGradient:areaGradient1]; 
boundLinePlot.areaFill  = areaGradientFill; 
boundLinePlot.areaBaseValue = [[NSDecimalNumber zero] decimalValue]; 

// Add plot symbols 
CPTMutableLineStyle *symbolLineStyle = [CPTMutableLineStyle lineStyle]; 
symbolLineStyle.lineColor = [CPTColor blackColor]; 
CPTPlotSymbol *plotSymbol = [CPTPlotSymbol ellipsePlotSymbol]; 
plotSymbol.fill    = [CPTFill fillWithColor:[CPTColor blueColor]]; 
plotSymbol.lineStyle  = symbolLineStyle; 
plotSymbol.size    = CGSizeMake(10.0, 10.0); 
boundLinePlot.plotSymbol = plotSymbol; 

Я пропускаю что-то здесь? Я бы подумал, что источник данных и т. Д. Будут работать одинаково, учитывая, что Bar Plot работает правильно. Я просто пытаюсь перейти от гистограммы к линейной диаграмме.

Любая помощь будет высоко оценена.

С наилучшими пожеланиями, Dan

ответ

1

Это была моя собственная ошибка.

В методах dataSource;

-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot 
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 

Я делал заявление If;

if ([plot isKindOfClass:[CPTBarPlot class]]){ 

Ofcourse Я использовал CPTScatterPlot, чтобы мой код не вызывался. Doh.

1

Вы, возможно, потребуется перезагрузить данные вашего сюжета в. Попробуйте сделать это:

[lineGraph reloadData] 
+0

Hi skyram. К сожалению, я уже делаю это в нижней части моего кода (не показано в моем оригинальном посте.) Его странно, я бы ожидал, что диаграмма и линейная диаграмма будут работать аналогичным образом. Не знаете, почему диаграмма графика отображается и отображается правильно, в то время как в линейной диаграмме нет. Различия между ними, в основном, являются кодом моего исходного сообщения. благодаря –

Смежные вопросы