2013-05-29 2 views
0

내 coreplot 그래프에 이상한 문제가 있습니다. 저는 6 개의 y 축을 가지고 있으며 모두 "CPTAxisLabelingPolicyEqualDivisions"정책을 가지고 있습니다. 그래프를 스크롤 할 수 있고 축의 레이블이 올바르게 업데이트되었습니다. 그러나 때로는 그래프를 아래로 스크롤하려고 할 때 특정 축의 마지막 레이블이 사라집니다. I는 (제한 0) 좌측에 3 1 축 놨소코어 플롯 1.2 - CPTAxisLabelingPolicyEqualDivisions 축이 마지막 레이블을 표시하지 않는 경우가 있음

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; 

그래프의 오른쪽에 다른 :

는 plotspace, 축 상대 플롯을 생성하기위한 코드 . 문제의 예는 마지막 녹색 라벨이 표시되지 않는 경우 아래와 같습니다 사전에

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

이것은 버그 인 것 같습니다. 고정 간격 레이블 지정 정책을 사용할 때 일종의 반올림 오류가있을 수 있습니다. 핵심 플롯 issue tracker에 신고하십시오.