2013-01-16 221 views
2

嗨,我正在尋找一個圖表 在哪裏我可以繪製散點圖條形圖(線條形圖),是否有可能在同一個圖形中繪製線條圖和條形圖核心情節?線條和條形圖在一個圖形核心圖

我試過以下爲了獲得相同,但我沒有成功。

CPTGraphHostingView *hostingView = [[CPTGraphHostingView alloc] initWithFrame:CGRectMake(0, 0, width, height)]; 

CPTXYGraph *graph = [[CPTXYGraph alloc] initWithFrame: hostingView.bounds]; 
hostingView.hostedGraph = graph; 


CPTBarPlot *cptBarPlot = [[CPTBarPlot alloc] init]; 
      cptBarPlot.fill = [CPTFill fillWithColor:color]; 
      cptBarPlot.lineStyle = nil; 
      cptBarPlot.identifier = [columnSeries objectForKey:@"id"]; 
      cptBarPlot.name = [columnSeries objectForKey:@"displayName"]; 
      cptBarPlot.plotRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(BarInitialX) length:CPTDecimalFromDouble(xAxisLength)]; 

      cptBarPlot.barWidth = CPTDecimalFromDouble(BarWidth); 
      cptBarPlot.dataSource = self; 
      //cptBarPlot.opacity = 0.0f; 
      cptBarPlot.delegate = self; 

[graph addPlot:cptBarPlot]; 


CPTXYPlotSpace * secondPlotSpace = [[CPTXYPlotSpace alloc]init]; 
     secondPlotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(BarInitialX) length:CPTDecimalFromDouble(xAxisLength+1)]; 
     secondPlotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(0.0) length:CPTDecimalFromFloat(yAxisLength)]; 

     //[graph addPlotSpace:secondPlotSpace]; 

     CPTScatterPlot * linePlot = [[CPTScatterPlot alloc] init]; 

     CPTMutableLineStyle * lineStyle = [CPTMutableLineStyle lineStyle]; 
     lineStyle.lineWidth = 1.f; 
     lineStyle.lineColor = color; 
     lineStyle.dashPattern = [NSArray arrayWithObjects:[NSNumber numberWithFloat:3.0f],nil]; 

     linePlot.dataLineStyle = lineStyle; 
     linePlot.identifier = [lineSeries objectForKey:@"id"]; 
     linePlot.dataSource = self; 
     linePlot.name = [lineSeries objectForKey:@"displayName"]; 

     //linePlot.plotRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromDouble(BarInitialX) length:CPTDecimalFromDouble(xAxisLength)]; 

     [graph addPlot: linePlot]; 

我上述嘗試,也嘗試添加的曲線在differect情節空間即 [圖addPlot:linePlot toPlotSpace:secondPlotSpace]我仍然沒有全成。

我想我失去了一些東西,但無法找到它。

感謝您的幫助。

+0

問題中的代碼看起來很好。假設圖表顯示出來,但圖表不正確,我懷疑問題出在數據源方法中。 –

回答

0

您是否實現了以下方法來返回圖表值?

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{ 
    if ([plot isKindOfClass:[CPTBarPlot class]]) { 
     switch (fieldEnum) { 
      case CPTBarPlotFieldBarLocation: 
       return ...; 
       break; 
      case CPTBarPlotFieldBarTip: 
       return ...; 
       break; 
      case CPTBarPlotFieldBarBase: 
       return ...; 
      default: 
       return 0; 
       break; 
     } 
    } else { 
     switch (fieldEnum) { 
      case CPTScatterPlotFieldX: 
       return ...; 
       break; 
      case CPTScatterPlotFieldY: 
       return ...; 
       break; 
      default: 
       return 0; 
       break; 
     } 

    } 
}