I have successfully created two series (one in each plot space) with each using its own scale. I created the axes with this code:
CPTXYAxisSet *axisSet = (CPTXYAxisSet *) self.hostView.hostedGraph.axisSet;
CPTXYAxis *x = axisSet.xAxis;
CPTXYAxis *y = axisSet.yAxis;
CPTXYAxis *y2 = axisSet.yAxis;
y.plotSpace = plotSpace;
y2.plotSpace = plotSpace2;
graph.axisSet.axes = [NSArray arrayWithObjects:x, y, y2, nil];
The code works correctly for setting the properties of y, but when the code reaches setting the properties for y2, such as:
y2.title = @"Velocity (m/s)";
y gets its title property changed.
Here is my plotspace setup:
Blockquote
graph = self.hostView.hostedGraph;
plotSpace = (CPTXYPlotSpace *) graph.defaultPlotSpace;
graph.plotAreaFrame.fill = [CPTFill fillWithColor:[CPTColor clearColor]];
[graph addPlotSpace:plotSpace];
CPTScatterPlot *forcePlot = [[CPTScatterPlot alloc] init];
forcePlot.dataSource = self;
forcePlot.identifier = CPDForce;
[graph addPlot:forcePlot toPlotSpace:plotSpace];
[graph addPlotSpace:plotSpace2];
CPTScatterPlot *velPlot = [[CPTScatterPlot alloc] init];
velPlot.dataSource = self;
velPlot.identifier = CPDVelocity;
[graph addPlot:velPlot toPlotSpace:plotSpace2];
[plotSpace scaleToFitPlots:[NSArray arrayWithObjects:forcePlot, nil]];
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0) length:CPTDecimalFromFloat(SlopeTime)];
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0) length:CPTDecimalFromFloat(MaxForce+0.1*MaxForce)];
[plotSpace2 scaleToFitPlots:[NSArray arrayWithObjects:velPlot, nil]];
plotSpace2.xRange = plotSpace.xRange;
plotSpace2.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0) length:CPTDecimalFromFloat(MaxVelocity+0.1*MaxVelocity)];
You've set y
and y2
to the same axis object. Create a new axis object for y2
instead:
CPTXYAxis *y2 = [[CPTXYAxis alloc] init];