我有一個散點圖,繪製圓圈。它畫得很好,我根據用戶設備的高寬比進行縮放。圈子的大小可能會有很大的不同,所以我想相應地縮放圖塊空間。問題是,當我使用使用核心繪圖基於圓半徑將散點圖繪製到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