2012-10-25 6 views
0

시나리오 : 5 개 기간 {{3M, 6M, 1Y, 2Y & 3Y}에 대한 다섯 개의 그래프, 각각 자체의 (1-2) 산점도가 있습니다. 동일한 y 범위 (값)를 공유합니다.
각 기간마다 다른 x- 범위 및 레이블 지정 정책이 있습니다.
예를 들어, 수정 정책 또는 위치 정책을 가질 수 있습니다. 또 다른 사람 없음.

X- 범위는 불변의/plot-space 인 것으로 보입니다.
그래서 특정 xRanges & 레이블 지정 정책을 사용하여 평행 한 플롯 공간을 작성하려고합니다.플롯 공간 간 전환

그래프 < === {}있는 NSMutableArray * plotSpaces
x.axis/구획 공간 :
는 I는 x.axis은 & 플롯은 플롯과 공간의 관계를 연구 하였다.
플롯/plotspace

그래서 나는 내가 할 수있는 생각 :
1)는 plotspace을 만듭니다.
2) 특정 플롯 (x 축 &xRange)에 플롯 공간을 할당하십시오.
3) 플롯을 그래프에 추가하거나 그래프에서 제거하십시오.
4) 그래프를 다시 그립니다.

그래서 사용자가 마침표/그림 공간을 선택하면 할 일은 다음과 같습니다. 기존의 모든 그림을 그래프로 그려지게하는 기간 플롯으로 바꾸기 & 각 x 축 (Y 축은 흔하다)?

[myGraph removePlot:(CPTPlot *)oldPlot]; 
[myGraph addPlot:(CPTPlot *)plot toPlotSpace:(CPTPlotSpace *)space]; 

... 여기 조금 있습니다.

?

답변

0

축 또한 플롯 공간에 할당됩니다. 축을 교체해야합니다. 항상 플롯과 축을 추가하고 제거하여 상대적으로 큰 성능을 얻습니다.

관찰 한대로 플롯 범위는 변경할 수 없습니다. 즉, 기존 범위를 변경할 수는 없으며 새 범위를 설정할 수 없습니다. 새 CPTPlotRange 오브젝트를 작성하거나 기존 오브젝트의 변경 가능한 사본을 작성하십시오.

플롯 스케일을 변경하고자 할 때마다 다음 작업을 수행해야합니다. 그래프의 주요 부분을 제거하거나 교체하지 않고도 모두 변경 될 수 있습니다.

  1. 위에서 설명한대로 플롯 범위를 변경하십시오.
  2. 축의 레이블 지정 정책 및 관련 특성을 갱신하십시오.
  3. 새 데이터를로드하는 플롯에서 -reloadData으로 전화하십시오.
+0

I는 새 것으로 교체 이전 xRange 시도 : 'CPTPlotRange myXRange * = [CPTPlotRange ALLOC] initWithLocation : CPTDecimalFromDouble (0.0) 길이 : CPTDecimalFromUnsignedInteger (1)]; plotSpace.xRange = myXRange; [myXRange release]; ' ...'1 '을 사용하여 차이가 있는지 확인하십시오. 그러나 아아, 범위에서 차이가 없음을 알 수 있습니다. 심지어 그래프 reloadData 후. –

+0

이것이 기본 범위입니다. 다른 것을 시도하십시오. :-) –

+0

좀 더 구체적으로 말씀해 주시겠습니까? 나는 시도한 것처럼 plotSpace의 xRange를 기본값이 아닌 xRange로 대체 할 수 있다고 생각했습니다. 즉, @ location & length 범위를 만들었습니다. 그 다음 그것을 현재 (사실상) 플롯 공간에 할당합니다. 다르게해야 할 일은 무엇입니까? –