2013-03-20 20 views
0
I am unable to put three legend boxes on the graph.I have tried the following code 


    CPTGraph *graph1 = self.hostView.hostedGraph; 

       CGFloat legendPadding = -(self.view.bounds.size.width/8); 

       graph1.legendDisplacement = CGPointMake(legendPadding, 0.0);   
            
       CPTLegend *theLegend1 = [CPTLegend legendWithGraph:graph1]; 

       theLegend1.numberOfColumns = 1; 

       theLegend1.fill = [CPTFill fillWithColor:[CPTColor whiteColor]]; 

       theLegend1.borderLineStyle = [CPTLineStyle lineStyle]; 

       theLegend1.cornerRadius = 5.0;  


       graph1.legend = theLegend1;     

       graph1.legendAnchor = CPTRectAnchorTop; 
        

       CGFloat legendPadding1 = -(self.view.bounds.size.width/4); 


       graph1.legendDisplacement = CGPointMake(legendPadding1, 0.0); 

where am i going wrong ? 

Here is the code for adding plots: 

    CPTGraph *graph = self.hostView.hostedGraph; 
    CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace; 
    plotSpace.delegate = self; 
    // 2 - Create the three plots 
    aaplPlot = [[[CPTScatterPlot alloc] init]autorelease]; 
    aaplPlot.dataSource = self; 
    aaplPlot.identifier = @"MaxWeight"; 

    CPTColor *aaplColor = [CPTColor magentaColor]; 
    [graph addPlot:aaplPlot toPlotSpace:plotSpace]; 
    googPlot = [[[CPTScatterPlot alloc] init]autorelease]; 
    googPlot.dataSource = self; 
    googPlot.identifier = @"MinWeight"; 
    CPTColor *googColor = [CPTColor greenColor]; 
    [graph addPlot:googPlot toPlotSpace:plotSpace]; 

    msftPlot = [[[CPTScatterPlot alloc] init]autorelease]; 
    msftPlot.dataSource = self; 
    msftPlot.identifier = @"NormalWeight"; 

    CPTColor *msftColor = [CPTColor blueColor]; 
    [graph addPlot:msftPlot toPlotSpace:plotSpace]; 

    [plotSpace scaleToFitPlots:[NSArray arrayWithObjects:aaplPlot,msftPlot,googPlot,nil]]; 

我已添加此代码来添加图。使用上面的代码,我只能绘制一个图例框。但我的要求是要获得三个图例框..我在哪里做错了。请验证代码和让我知道我在哪里做错了?如何使用coreplot在散点图中获取3个图例框?

回答

0

除非您省略了一些设置代码,否则问题在于您的图形在创建图例时没有任何图形。可以在将图添加到图之后创建带有+legendWithGraph:的图例,或者稍后使用-addPlot:-insertPlot:atIndex:方法将图添加到图例。

+0

为以上图表添加代码。请验证代码。 – user2191467 2013-03-21 07:23:42

+0

这很好。在将图添加到图之后,务必将原先发布的图例构建代码移动到某个点。 – 2013-03-21 23:29:54

相关问题