我有一个散点图,绘制圆圈。它画得很好,我根据用户设备的高宽比进行缩放。圈子的大小可能会有很大的不同,所以我想相应地缩放图块空间。问题是,当我使用使用核心绘图基于圆半径将散点图绘制到Y轴
[graph.defaultPlotSpace scaleToFitPlots:graph.allPlots];
缩放是相对于y轴完成的。由于我使用纵横比,因此我得到了完美的圆形,但由于这是纵向定位,并且相对于y轴完成缩放,所以圆形会在x轴上截断。由于x轴在高宽比方面较短,我想就其进行缩放。那可能吗?
我想要实现的是“缩小”或“缩放”我的plotSpace,所以我的所有圆都适合在plotSpace中,这似乎无法在不破坏长宽比的情况下弄清楚,从而得到延伸的圆圈。
它看起来像这样:
而且我希望它看起来像这样:
编辑:
代码我目前使用的规模:
[self.mGraph layoutIfNeeded];
[self.mGraph.defaultPlotSpace scaleToFitPlots:self.mGraph.allPlots];
float width = self.mGraph.plotAreaFrame.bounds.size.width;
float height = self.mGraph.plotAreaFrame.bounds.size.height;
float aspectRatio = width/height;
CPTMutablePlotRange *xRange = [plotSpace.xRange mutableCopy];
[xRange expandRangeByFactor:CPTDecimalFromCGFloat(1.0f * aspectRatio)];
plotSpace.xRange = xRange;
CPTMutablePlotRange *yRange = [plotSpace.yRange mutableCopy];
[yRange expandRangeByFactor:CPTDecimalFromCGFloat(1.0f)];
plotSpace.yRange = yRange;
嗯,你可以发布代码示例?我无法得到这个工作。 – ClockWise 2015-04-02 06:29:48
我使用代码编辑了我的原始帖子:) – ClockWise 2015-04-07 07:53:52
感谢您的帮助。我并没有完全按照你上面所说的做,但是我意识到,在我目前的情况下,比率是0.5,所以我只是将x和y的长度乘以2,以保持宽高比和双倍距离以使它更适合对于x轴而不是y轴。 – ClockWise 2015-04-08 07:49:15