2013-05-06 2 views
0

Coreplot (1.2)의 최신 버전으로 업그레이드하여 문제가 생겼습니다.Coreplot이 ScatterPLot 위치에 있습니다.

내 그래프의 내부에 두 개의 그림이 있습니다. 막대 그래프와 산점도. 산점도는 연결된 막대의 선 표시입니다. 버전 1.1에서는 모두 잘 돌아 갔지만 1.2로 바꿨을 때, Scatter plot은 잘못 배치 된 것처럼 보였습니다. 조금 왼쪽부터 시작하는 것은 유감입니다. 여기에 이미지 :

enter image description here

그 plotsymbols 전체 산점도 (즉, 심볼이 밖에서의의 freen 바의 중앙에 없었다 및 기호가 있었다 오른쪽 막대 그래프와 동기화했다 눈금 선)을 가져야합니다. numberForPlot에서 반환되는 포인트는 동일한 값입니다.

그리고 여기 내 numberForPlot 방법 단지 경우입니다 :

- (NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)idx 
{ 
if ([plot.identifier isEqual:kBarPlot]) 
{ 
    if (fieldEnum == CPTBarPlotFieldBarLocation) 
     return [NSNumber numberWithInt:[self.intervalStringArray indexOfObject:[allKeys objectAtIndex:idx]]]; 

    NSArray *activitiesForDate = [activitiesByDate valueForKey:[allKeys objectAtIndex:idx]]; 
    double activityAmount = 0.0; 
    if (activitiesForDate) 
    { 
     //compute value 
    } 

    DebugLog(@"Barplot returning Y= %f forindex = %d", activityAmount, idx); 
    return [NSNumber numberWithDouble:activityAmount]; 
} 
if ([plot.identifier isEqual:kScatterPlot]) 
{ 
    NSString *currentDate = [[self activityDatesAsString] objectAtIndex:idx]; 
    if (fieldEnum == CPTScatterPlotFieldX) 
    { 
     int currentIndex = [self.intervalStringArray indexOfObject:currentDate]; 
     return [NSNumber numberWithInt:currentIndex]; 
    } 


    NSArray *activitiesForDate = [self activitiesForDate:[self.dateFormatter dateFromString:currentDate]]; 
    float netActivity = 0.0; 

    //compute netActvity 
    DebugLog(@"SCATTERPLOT returning %@ for index %d", [NSNumber numberWithFloat:netActivity], idx); 
    return [NSNumber numberWithFloat:netActivity]; 
} 
return nil; 

}

마지막으로, 로그 출력은;

SCATTERPLOT returning -8 for index 0 
SCATTERPLOT returning -4 for index 1 
Barplot returning Y= -8.000000 for index = 0 
Barplot returning Y= -4.000000 for index = 1 

편집 : 나는 거의 산포도 그래프에서 혼자있을 때조차 지속 문제를 여기에 코드를 게시 완료했다 동안. 나는이 문제를 발견했다. 그러나 그것이 정상적인 것인지, 아니면 버그인지는 모른다. 문제는 CPTMutableShadow에있다 : 나는 그림자를 제거하면

CPTScatterPlot *netActivityPlot = [[[CPTScatterPlot alloc] init] autorelease]; 
    netActivityPlot.identifier = kNetActivityPlot; 
    netActivityPlot.title = @"Net Activity"; 

    CPTMutableLineStyle *lineStyle = [[netActivityPlot.dataLineStyle mutableCopy] autorelease]; 
    lineStyle.lineWidth    = 2.0; 
    lineStyle.lineColor    = _cptNetActivityLineColor; 
    netActivityPlot.dataLineStyle = lineStyle; 
    netActivityPlot.dataSource = self; 
    CPTMutableShadow *shadow = [CPTMutableShadow shadow]; 
    shadow.shadowColor = [CPTColor lightGrayColor]; 
    shadow.shadowOffset = CGSizeMake(2.0, -2.0); 
    shadow.shadowBlurRadius = 4.0f; 
    netActivityPlot.shadow = shadow; 
    [activityGraph addPlot:netActivityPlot]; 

    netActivityPlot.plotSpace = (CPTXYPlotSpace *)activityGraph.defaultPlotSpace; 

가, 플롯이 라인에 적합합니다.

+0

iOS 또는 Mac OS X에 있나요? 어떤 버전입니까? 창 크기를 조정하거나 장치를 회전하거나 그래프를 스크롤하면 어떻게됩니까? –

+0

iPad에 있습니다. 회전/스크롤/크기 조정에 대한 변경 사항은 없습니다. 내가 그것을 찾을 수 없을지라도 빠른 수정이 있기를 바랍니다. –

+0

게시 한 코드에 아무 것도 표시되지 않습니다. 두 플롯의 설치 코드를 게시 할 수 있습니까? 플롯이 플롯 공간을 공유합니까? 아니면 둘 이상입니까? –

답변

0

이것은 일반적으로 버그입니다. 핵심 플롯 issue tracker에 새로운 호로 추가되었습니다.

관련 문제