所以我一直在修改示例代码,试图让图表显示0到20的y值,并且一次只显示屏幕上最多6个x值。 x的可见范围为0-6;
这是我拍摄
的照片
这就是它的样子
所以我认为这部分代码是最重要的。在这里,我将向您展示我如何制作可见轴心范围,绘制空间范围和绘制空间全局范围:
CPTMutablePlotRange *xRange = [plotSpace.xRange mutableCopy];
CPTMutablePlotRange *yRange = [plotSpace.yRange mutableCopy];
// I'm not sure what the difference is between the two
// constrict this to 0-20 for y and 0-6 for x
x.visibleRange = nil;
y.visibleRange = nil;
x.visibleAxisRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0f) length:CPTDecimalFromFloat(6.f)];
y.visibleAxisRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0f) length:CPTDecimalFromFloat(20.f)];
// expand the X, y axis to be more than we need
[xRange expandRangeByFactor:CPTDecimalFromDouble(1.05)];
[yRange expandRangeByFactor:CPTDecimalFromDouble(1.05)];
plotSpace.xRange = xRange;
plotSpace.yRange = yRange;
// expand it to be even bigger
[xRange expandRangeByFactor:CPTDecimalFromDouble(3.0)];
[yRange expandRangeByFactor:CPTDecimalFromDouble(3.0)];
plotSpace.globalXRange = xRange;
plotSpace.globalYRange = yRange;
因此,在应用程序上显示的内容的图片中,似乎显示了我的所有值而不仅仅是六个,但它似乎知道我只想显示6,因为标签停在六点。我想让应用程序向左和向右滚动以显示其他点,在我得到它以显示该线的正确长度之后,但一次只能做一件事。
这是代码。它非常草率,我只是在我清理它之前看看有什么可能,然后把它带到我的真实项目中。所有的工作都是在controlChart.m文件中完成的,我使用了一些Plain White主题文件,但这应该是不重要的。
答案 0 :(得分:0)
由于x数据点相距一个单位,因此给xRange
长度为6(加上一个绘图符号位)可以达到你想要的效果。在您发布的代码中,xRange
在扩展范围之前设置为-scaleToFitPlots:
。这使它适合所有绘图数据。