2011-11-22 202 views
8

我在軸標籤上遇到了一些問題。看起來我的自定義標籤在情節區域外不可見。查看核心圖的Design Overview,軸標籤應位於繪圖區域之外。關於如何讓他們在劇情區域外可見的任何想法?核心繪圖軸標籤在繪圖區域外不可見

下面的代碼/圖片顯示了標籤只顯示在繪圖區域內的方式。如果我將標籤偏移量更改爲正數,則標籤根本不顯示。我在iOS 5上使用Core Plot 0.9。

在此先感謝!

CPTTheme *theme = [CPTTheme themeNamed:kCPTPlainWhiteTheme]; 
graph = [[theme newGraph] retain];; 

CPTGraphHostingView *hostingView = (CPTGraphHostingView *)self.view; 
hostingView.hostedGraph = graph; 

graph.paddingLeft = 40.0; 
graph.paddingTop = 40.0; 
graph.paddingRight = 40.0; 
graph.paddingBottom = 40.0; 
graph.masksToBorder = NO; 

// ... setup axis 
axisSet.yAxis.majorIntervalLength = CPTDecimalFromInt(0); 
axisSet.yAxis.minorTicksPerInterval = 0; 
axisSet.yAxis.labelingPolicy = CPTAxisLabelingPolicyNone; 

// if this number is negative, the labels show, 
// if it is positive, that is outside the plot area, the labels are hidden. 
axisSet.yAxis.labelOffset = -20; 

// ... setup labels 
NSMutableArray *labels = [NSMutableArray array]; 
for (int i = 0; i < reportData.rowCount; ++i) { 

    CPTAxisLabel *label = [[CPTAxisLabel alloc] initWithText:[NSString stringWithFormat:@"Test Row %i", i] textStyle:labelStyle]; 

    label.tickLocation = CPTDecimalFromInt(i); 
    label.offset = axisSet.yAxis.labelOffset; 
    label.alignment = CPTAlignmentLeft; 
    [labels addObject:label]; 
    [label release]; 
} 
axisSet.yAxis.axisLabels = [NSSet setWithArray:labels]; 

Graph

回答

21

設置在另外的繪圖區框架上一些填充到或代替圖形本身的。

graph.plotAreaFrame.paddingTop = 20.0; 
graph.plotAreaFrame.paddingBottom = 50.0; 
graph.plotAreaFrame.paddingLeft = 50.0; 
graph.plotAreaFrame.paddingRight = 50.0; 

此代碼來自Plot Gallery示例應用程序中的軸演示。

+0

謝謝!沒有看到該選項。 –

+5

coreplot是一個非常簡單的事情,使用/ sarc –

7

我遇到了完全相同的問題,並嘗試了我可以在網上找到的所有解決方案,但都沒有成功。

最後我得到了它通過關閉邊境屏蔽,這樣的工作:

graph.plotAreaFrame.masksToBorder = NO; 
+0

這會導致標籤呈現在圖表視圖邊界之外。如果在視圖組件周圍留下空間,這可能是一個可行的解決方案,但值得注意。 –