2014-02-25 71 views
0

在Core Plot for iOS中,是否有一種方法可以將某種填充添加到繪圖區域,而不是繪圖區域框架?當使用圖形符號時,如果符號落在軸線或邊界上,則符號可以被截斷。無可否認,我明白爲什麼在繪製非零大小的圓圈作爲數據符號時出現這種情況,但我很好奇是否有辦法添加一些填充以防止出現這種情況。繪製區域填充以防止符號被截斷。 (Core Plot)

或者也許有一種方法可以處理軸範圍,但如果是這樣的話,我還沒有想出除了創建「神奇」大到足以考慮這些符號大小的軸範圍之外的神奇組合。

在隨附的屏幕截圖中,x軸表示一週。第一天的任何數據點將被截斷,因爲它正在Y軸上繪製。理想情況下,我希望這個數據點只是「有點內部」。 (這實際上意味着我要在x軸範圍內就足以提高藉此到帳戶)。

同樣爲y軸。值「0」在x軸上右側繪製。

我真的不希望軸顯示出比需要寬的範圍內(即我不想y軸走-1,例如。)

謝謝。

enter image description here

回答

4

這裏是從「控制圖」演示一些示例代碼在情節畫廊示例應用程序:

// Adjust visible ranges so plot symbols along the edges are not clipped 
CPTMutablePlotRange *xRange = [[plotSpace.xRange mutableCopy] autorelease]; 
CPTMutablePlotRange *yRange = [[plotSpace.yRange mutableCopy] autorelease]; 

x.orthogonalCoordinateDecimal = yRange.location; 
y.orthogonalCoordinateDecimal = xRange.location; 

x.visibleRange = xRange; 
y.visibleRange = yRange; 

x.gridLinesRange = yRange; 
y.gridLinesRange = xRange; 

[xRange expandRangeByFactor:CPTDecimalFromDouble(1.05)]; 
[yRange expandRangeByFactor:CPTDecimalFromDouble(1.05)]; 
plotSpace.xRange = xRange; 
plotSpace.yRange = yRange; 

基礎上的大小可以根據需要調整膨脹係數圖表和情節符號。

+0

謝謝埃裏克,這絕對有效。你能解釋一下爲什麼它有效嗎?如何擴大範圍,但數據點仍然正確,而我的方面沒有任何改變?就此而言,我的自定義標籤多少起作用,但如果我增加擴展係數,則標籤開始變得非常混亂。 – kennyc

+0

'visibleRange'限制了實際繪製的軸的一部分,'gridLinesRange'對網格線做了相同的處理。我們擴展繪圖範圍以使繪圖區域(包含所有繪圖繪製的圖層)足夠大以包含掛在軸外部的符號。 –

+0

@EricSkroch #Scatter我創建了Y軸(0,50,100,150,200,250,300)的自定義標籤,各自的數據點值分別爲18.63,29.32,24.31,33.68,136.23,128.44,126.20,並創建了X軸爲(Mon,.... SUN)並考慮相應的數據點(0,1,2 ... 6)。我們正在繪製總共7個點。但是手動給出的距離小於50(majorIntervalLength),因此所有y標籤都會顯示而不滾動圖形。我面對的是相應的y數據值點沒有與y標籤位置相關。 https://dl.dropboxusercontent.com/u/186007808/ScreenShotDescription.png –