CorePlot可见范围未按预期工作

时间:2015-03-13 06:11:02

标签: ios core-plot visible

所以我一直在修改示例代码,试图让图表显示0到20的y值,并且一次只显示屏幕上最多6个x值。 x的可见范围为0-6;

这是我拍摄

的照片

enter image description here

这就是它的样子 enter image description here

所以我认为这部分代码是最重要的。在这里,我将向您展示我如何制作可见轴心范围,绘制空间范围和绘制空间全局范围:

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主题文件,但这应该是不重要的。

coreplot-horrible-code

1 个答案:

答案 0 :(得分:0)

由于x数据点相距一个单位,因此给xRange长度为6(加上一个绘图符号位)可以达到你想要的效果。在您发布的代码中,xRange在扩展范围之前设置为-scaleToFitPlots:。这使它适合所有绘图数据。