Frage

ich durch das Tutorial ging hier: http: //www.switchonthecode.com/tutorials/using-core-plot-in-an-iphone-application , und ich kann eine Grafik zu zeigen, aber ich sehe keine Strichmarkierungen oder Etiketten auf meinem Achse eingestellt. Gibt es etwas, einfach ich bin mit Blick auf? Unten ist mein Code die Grafik zu erstellen, und ich auch die Delegierten Funktionen implementiert. Ich bin die Achse und die Handlung zu sehen, aber nicht die Achse Striche oder Etiketten.

Vielen Dank für jede Hilfe, die Sie geben können.

- (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;  
}
War es hilfreich?

Lösung

Sie brauchen etwas Platz um die Außenseite der Achsen. Core-Plot noch nicht tut dies automatisch für Sie.

Versuchen Sie, einige padding graph.plotArea.plotGroup und graph.plotArea.axisSet hinzufügen. Siehe das Balkendiagramm in dem iPhone-App-Test für ein Beispiel.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top