iPhone Core-Plot Tick Marks不显示

时间:2009-11-17 22:50:18

标签: iphone objective-c cocoa-touch core-plot

我在这里阅读了教程:http://www.switchonthecode.com/tutorials/using-core-plot-in-an-iphone-application,我可以看到一个图表,但是我的轴上没有看到任何刻度线或标签。我有什么简单的东西可以忽略吗?下面是我创建图表的代码,我还实现了委托函数。我正在看轴和图,但不是轴刻度标记或标签。

感谢您提供任何帮助。

- (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;  
}

1 个答案:

答案 0 :(得分:6)

轴外侧需要一些空间。 Core Plot还没有自动为您执行此操作。

尝试向graph.plotArea.plotGroupgraph.plotArea.axisSet添加一些填充。有关示例,请参阅iPhone测试应用程序中的条形图。