2013-05-29 53 views
0

我有一个奇怪的问题,我的coreplot图。 我有六个y轴,他们都有策略“CPTAxisLabelingPolicyEqualDivisions”。 图形可以滚动,轴上的标签已正确更新。 但有时,当我尝试向下滚动图表时,特定轴的最后一个标签消失。核心绘图1.2 - CPTAxisLabelingPolicyEqualDivisions,轴有时不显示最后的标签

这是为创建所述轴线和相对地块的代码,plotspace:

CPTXYAxis *A_Axis = [[CPTXYAxis alloc] init] ; 
A_Axis.coordinate     = CPTCoordinateY; 
A_Axis.orthogonalCoordinateDecimal = CPTDecimalFromCGFloat(_ASpace.yRange.locationDouble); 
A_Axis.labelingPolicy    = CPTAxisLabelingPolicyEqualDivisions; 
A_Axis.majorGridLineStyle   = majorGridLineStyle; 
A_Axis.minorGridLineStyle   = minorGridLineStyle; 
A_Axis.preferredNumberOfMajorTicks = MAX_NUMBER_LABEL; 
A_Axis.minorTicksPerInterval  = 0; 
A_Axis.labelOffset     = 3.0; 
A_Axis.labelPositionY    = 0.0; 
labelTextStyle.color = [CPTColor colorWithCGColor:A_Color.CGColor]; 
A_Axis.tickDirection    = CPTSignNegative; 
A_Axis.labelTextStyle = labelTextStyle; 
A_Axis.axisConstraints = [CPTConstraints constraintWithRelativeOffset:0.0]; 
A_Axis.plotSpace = _ASpace; 

CPTXYAxis *B_Axis = [[CPTXYAxis alloc] init] ; 
B_Axis.coordinate     = CPTCoordinateY; 
B_Axis.orthogonalCoordinateDecimal = CPTDecimalFromCGFloat(_BSpace.yRange.locationDouble); 
B_Axis.labelingPolicy    = CPTAxisLabelingPolicyEqualDivisions; 
B_Axis.majorGridLineStyle   = majorGridLineStyle; 
B_Axis.preferredNumberOfMajorTicks = MAX_NUMBER_LABEL; 
B_Axis.minorTicksPerInterval  = 0; 
B_Axis.labelOffset     = 3.0; 
B_Axis.labelPositionY    = 11.0; 
labelTextStyle.color = [CPTColor colorWithCGColor:B_Color.CGColor]; 
B_Axis.tickDirection    = CPTSignNegative; 
B_Axis.labelTextStyle = labelTextStyle; 
B_Axis.axisConstraints = [CPTConstraints constraintWithRelativeOffset:0.0]; 
B_Axis.plotSpace = _BSpace; 

CPTXYAxis *C_Axis = [[CPTXYAxis alloc] init] ; 
C_Axis.coordinate     = CPTCoordinateY; 
C_Axis.orthogonalCoordinateDecimal = CPTDecimalFromCGFloat(_CSpace.yRange.locationDouble); 
C_Axis.labelingPolicy    = CPTAxisLabelingPolicyEqualDivisions; 
C_Axis.majorGridLineStyle   = majorGridLineStyle; 
C_Axis.preferredNumberOfMajorTicks = MAX_NUMBER_LABEL; 
C_Axis.minorTicksPerInterval  = 0; 
C_Axis.labelOffset     = 3.0; 
C_Axis.labelPositionY    = 22.0; 
labelTextStyle.color = [CPTColor colorWithCGColor:C_Color.CGColor]; 
C_Axis.tickDirection    = CPTSignNegative; 
C_Axis.labelTextStyle = labelTextStyle; 
C_Axis.axisConstraints = [CPTConstraints constraintWithRelativeOffset:0.0]; 
C_Axis.plotSpace = _CSpace; 

CPTXYAxis *D_Axis = [[CPTXYAxis alloc] init] ; 
D_Axis.coordinate     = CPTCoordinateY; 
D_Axis.orthogonalCoordinateDecimal = CPTDecimalFromCGFloat(_DSpace.yRange.locationDouble); 
D_Axis.labelingPolicy    = CPTAxisLabelingPolicyEqualDivisions; 
D_Axis.majorGridLineStyle   = majorGridLineStyle; 
D_Axis.minorGridLineStyle   = minorGridLineStyle; 
D_Axis.preferredNumberOfMajorTicks = MAX_NUMBER_LABEL; 
D_Axis.minorTicksPerInterval  = 0; 
D_Axis.labelOffset     = 3.0; 
D_Axis.labelPositionY    = 0.0; 
labelTextStyle.color = [CPTColor colorWithCGColor:D_Color.CGColor]; 
D_Axis.tickDirection    = CPTSignPositive; 
D_Axis.labelTextStyle = labelTextStyle; 
D_Axis.axisConstraints = [CPTConstraints constraintWithRelativeOffset:1.0]; 
D_Axis.plotSpace = _DSpace; 

CPTXYAxis *E_Axis = [[CPTXYAxis alloc] init] ; 
E_Axis.coordinate     = CPTCoordinateY; 
E_Axis.orthogonalCoordinateDecimal = CPTDecimalFromCGFloat(_ESpace.yRange.locationDouble); 
E_Axis.labelingPolicy    = CPTAxisLabelingPolicyEqualDivisions; 
E_Axis.majorGridLineStyle   = majorGridLineStyle; 
E_Axis.preferredNumberOfMajorTicks = MAX_NUMBER_LABEL; 
E_Axis.minorTicksPerInterval  = 0; 
E_Axis.labelOffset     = 3.0; 
E_Axis.labelPositionY    = 11.0; 
labelTextStyle.color    = [CPTColor colorWithCGColor:E_Color.CGColor]; 
E_Axis.tickDirection    = CPTSignPositive; 
E_Axis.labelTextStyle    = labelTextStyle; 
E_Axis.axisConstraints    = [CPTConstraints constraintWithRelativeOffset:1.0]; 
E_Axis.plotSpace     = _ESpace; 

CPTXYAxis *F_Axis = [[CPTXYAxis alloc] init] ; 
F_Axis.coordinate     = CPTCoordinateY; 
F_Axis.orthogonalCoordinateDecimal = CPTDecimalFromCGFloat(_FSpace.yRange.locationDouble); 
F_Axis.labelingPolicy    = CPTAxisLabelingPolicyEqualDivisions; 
F_Axis.majorGridLineStyle   = majorGridLineStyle; 
F_Axis.preferredNumberOfMajorTicks = MAX_NUMBER_LABEL; 
F_Axis.minorTicksPerInterval  = 0; 
F_Axis.labelOffset     = 3.0; 
F_Axis.labelPositionY    = -11.0; 
labelTextStyle.color    = [CPTColor colorWithCGColor:F_Color.CGColor]; 
F_Axis.tickDirection    = CPTSignPositive; 
F_Axis.labelTextStyle    = labelTextStyle; 
F_Axis.axisConstraints    = [CPTConstraints constraintWithRelativeOffset:1.0]; 
F_Axis.plotSpace     = _FSpace; 

我已经把3条第一轴线上的左侧(与约束0),另一个在图的右侧。 问题的例子所示,其中最后一个绿色标签是不可见的:提前

http://www.mathnormal.altervista.org/axis.png

感谢。

+0

'labelPositionY'属性做了什么? –

+0

我编辑了一些库函数'setLabelOffset'。当标签更新时,我向标签点(x,y)添加一个y偏移量。但是问题不在这里,因为我从头开始创建一个项目,使用最初的CorePlot Library(1.2版),问题是一样的。您可以查看下面链接的视频,以获取更多解释:[link](http://www.youtube.com/watch?v=ACzpSvRaOY8&feature=youtu.be)y范围是[[CPTPlotRange plotRangeWithLocation:CPTDecimalFromCGFloat (10.0)长度:CPTDecimalFromCGFloat(50.0)]' – strstr

回答

0

这听起来像它可能是一个错误。使用固定间隔标签策略时,可能会出现某种舍入错误。请在Core Plot issue tracker上报告。