2009-11-17 3 views
2

Я просмотрел учебник здесь: http://www.switchonthecode.com/tutorials/using-core-plot-in-an-iphone-application, и я могу получить график для показа, но я не вижу никаких меток или меток на моей оси. Есть ли что-то простое, что я не замечаю? Ниже мой код для создания графика, и я также реализовал функции делегата. Я вижу ось и график, но не метки или метки оси.iPhone Core-Plot Tick Marks Not Showing

Спасибо за любую помощь, которую вы можете дать.

- (void) showGraph { 

    graph = [[CPXYGraph alloc] initWithFrame: CGRectMake(0,0, 320, 320)]; 

    CPLayerHostingView *graphView = [[CPLayerHostingView alloc] initWithFrame:CGRectMake(0,0, 320, 320)]; 
    graphView.backgroundColor = [UIColor blueColor]; 

    AppDelegate *t = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [t.mapVC.view addSubview:graphView]; 

    graphView.hostedLayer = graph; 
    graph.paddingLeft = 20.0; 
    graph.paddingTop = 20.0; 
    graph.paddingRight = 20.0; 
    graph.paddingBottom = 20.0; 

    float minElevation = 0; 
    float maxElevation = 10; 
    float minTime = 0; 
    float maxTime = 5; 

    CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace; 
    plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(minTime) 
               length:CPDecimalFromFloat(maxTime)]; 
    plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(minElevation) 
               length:CPDecimalFromFloat(maxElevation)]; 

    CPXYAxisSet *axisSet = (CPXYAxisSet *)graph.axisSet; 

    CPLineStyle *blackStyle = [CPLineStyle lineStyle]; 
    blackStyle.lineColor = [CPColor blackColor]; 
    blackStyle.lineWidth = 5.0f; 
    CPLineStyle *whiteStyle = [CPLineStyle lineStyle]; 
    whiteStyle.lineColor = [CPColor whiteColor]; 
    whiteStyle.lineWidth = 5.0f; 

    axisSet.xAxis.majorIntervalLength = [[NSDecimalNumber decimalNumberWithString:@"5"]decimalValue]; 

    axisSet.xAxis.minorTicksPerInterval = 4; 
    axisSet.xAxis.majorTickLineStyle = whiteStyle; 
    axisSet.xAxis.minorTickLineStyle = whiteStyle; 
    axisSet.xAxis.axisLineStyle = blackStyle; 
    axisSet.xAxis.minorTickLength = 5.0f; 
    axisSet.xAxis.majorTickLength = 10.0f; 
    axisSet.xAxis.labelOffset = 3.0f; 

    axisSet.yAxis.majorIntervalLength = [[NSDecimalNumber decimalNumberWithString:@"5"]decimalValue]; 
    axisSet.yAxis.minorTicksPerInterval = 4; 
    axisSet.yAxis.majorTickLineStyle = blackStyle; 
    axisSet.yAxis.minorTickLineStyle = blackStyle; 
    axisSet.yAxis.axisLineStyle = whiteStyle; 
    axisSet.yAxis.minorTickLength = 5.0f; 
    axisSet.yAxis.majorTickLength = 10.0f; 
    axisSet.yAxis.labelOffset = 3.0f; 

    CPScatterPlot *xSquaredPlot = [[[CPScatterPlot alloc] 
            initWithFrame:graph.bounds] autorelease]; 
    xSquaredPlot.identifier = @"X Squared Plot"; 
    xSquaredPlot.dataLineStyle.lineWidth = 2.0f; 
    xSquaredPlot.dataLineStyle.lineColor = [CPColor greenColor]; 
    xSquaredPlot.dataSource = self; 
    [graph addPlot:xSquaredPlot]; 

    CPPlotSymbol *greenCirclePlotSymbol = [CPPlotSymbol ellipsePlotSymbol]; 
    greenCirclePlotSymbol.fill = [CPFill fillWithColor:[CPColor greenColor]]; 
    greenCirclePlotSymbol.size = CGSizeMake(2.0, 2.0); 

    xSquaredPlot.plotSymbol = greenCirclePlotSymbol; 
} 

ответ

6

Вам нужно пространство вокруг внешней оси. Core Plot еще не делает это для вас автоматически.

Попробуйте добавить некоторые дополнения к graph.plotArea.plotGroup и graph.plotArea.axisSet. См. Пример экрана в приложении для iPhone.

+0

Да, к сожалению, API в библиотеке немного изменился с тех пор, как этот учебник был опубликован. Мы стараемся поддерживать примеры приложений, чтобы показать правильный способ взаимодействия с библиотекой. –