Objective c 绘制第二个绘图空间
我有两个绘图空间Objective c 绘制第二个绘图空间,objective-c,core-plot,Objective C,Core Plot,我有两个绘图空间 //First Plot Space self.plotSpace1 =(CPTXYPlotSpace *) self.hostingView.hostedGraph.defaultPlotSpace; [self.plotSpace1 setYRange: [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0) length:CPTDecimalFromFloat(100)]]; [self.plotSpace
//First Plot Space
self.plotSpace1 =(CPTXYPlotSpace *) self.hostingView.hostedGraph.defaultPlotSpace;
[self.plotSpace1 setYRange: [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0) length:CPTDecimalFromFloat(100)]];
[self.plotSpace1 setXRange: [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(([startNumber floatValue]/1000000) ) length:CPTDecimalFromFloat( ([endLength floatValue]/1000000))]];
//Second Plot Space
self.plotSpace2 =(CPTXYPlotSpace *) [self.hostingView.hostedGraph newPlotSpace];
[self.plotSpace2 setGraph:self.hostingView.hostedGraph];
[self.plotSpace2 setYRange: [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0) length:CPTDecimalFromFloat(1)]];
[self.plotSpace2 setXRange: [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat( ([startNumber floatValue]/1000000) ) length:CPTDecimalFromFloat( ([endLength floatValue]/1000000) )]];
[self.plotSpace2 setIdentifier:@"PLOT2"];
[self.plotSpace2 setAllowsUserInteraction:YES];
[self.hostingView.hostedGraph addPlotSpace:self.plotSpace2];
当我向第二个绘图空间添加绘图时,如下所示
CPTScatterPlot* plot = [[CPTScatterPlot alloc] initWithFrame:CGRectZero];
plot.title = plotTitle;
plot.dataSource = self;
[plot setPlotSpace:self.plotSpace2];
[self.hostingView.hostedGraph addPlot:plot toPlotSpace:self.plotSpace2];
我像这样添加第二个y轴-显示第二个y轴
CPTXYAxis *rightY = [(CPTXYAxis *)[CPTXYAxis alloc] initWithFrame:CGRectZero];
rightY.axisConstraints = [CPTConstraints constraintWithUpperOffset:0.0];
rightY.coordinate = CPTCoordinateY;
rightY.plotSpace = self.plotSpace2;
//Labeling and intervals
rightY.labelingPolicy = CPTAxisLabelingPolicyFixedInterval;
rightY.majorIntervalLength = CPTDecimalFromCGFloat(0.1f);
rightY.minorTicksPerInterval = 5;
rightY.orthogonalCoordinateDecimal = CPTDecimalFromDouble(self.plotSpace2.xRange.locationDouble + self.plotSpace2.xRange.lengthDouble);
rightY.title = nil;
//Format and position
rightY.titleTextStyle = axisTitleStyle;
rightY.titleOffset = 20.0f;
rightY.axisLineStyle = axisLineStyle;
rightY.labelTextStyle = axisTextStyle;
rightY.labelOffset = 2.0f;
rightY.majorTickLineStyle = axisLineStyle;
rightY.majorTickLength = 4.0f;
rightY.minorTickLength = 2.0f;
rightY.tickDirection = CPTSignPositive;
axisSet.axes = [NSArray arrayWithObjects:x, y, rightY, nil];
这条线没有标出来。但是,如果将其添加到plotSpace1(默认打印空间),则会打印它
我已经在这上面呆了一段时间了。我拼命地寻找答案。非常感谢您的帮助。第一个绘图空间的
yRange
范围为0到100,而第二个yRange
范围为0到1。打印数据可能在可见打印范围之外
您只应将绘图添加到图形中一次:
CPTScatterPlot* plot = [[CPTScatterPlot alloc] initWithFrame:CGRectZero];
plot.title = plotTitle;
plot.dataSource = self;
[self.hostingView.hostedGraph addPlot:plot toPlotSpace:self.plotSpace2];
嘿,埃里克,谢谢你的回复。我是新的核心情节,我可能不完全理解我在这里做什么。我基于第二个绘图空间添加了第二个y轴,它显示0到1,与0到100 y轴对齐。。这意味着1与100一致。我本以为第二个y轴的值,大约是.14,将基于该轴显示,所以。在0到100的绘图空间上接近14。即使如此,该值仍在0到100之间。你能告诉我如何理解可见打印范围的工作原理吗?0.14介于0和1之间,因此它应该在任一打印空间内可见。
visibleRange
axis属性仅控制轴的标记和绘制方式,对绘图没有影响。通常,轴线绘制为绘图区域的全宽或全高;通过此属性,可以约束线,使其仅延伸到绘图区域的一部分。那么,我需要朝哪个方向查看,才能获得一条线,该线沿着一个独立的y轴,而不是其余的y轴?是否有第二个y轴与第二个绘图空间相连?它是否显示了预期的范围?另外,请参阅我编辑的答案。谢谢Eric,我的代码中注释掉了额外的绘图添加行。我把它从这里移走了。我在两者之间切换,如果我使用简单的“添加”绘图,就会显示线条。打印到绘图空间--无线条。