2014-09-24 5 views
0

코어 플롯을 사용하여 그래프를 만듭니다.코어 플롯 그래디언트 바

바에서 그라디언트를 사용하여 색상이 노란색에서 빨간색으로 바뀌도록하고 싶습니다. 그러나 이것은 바가 얼마나 높은가에 달려 있습니다. 예를 들어 다음과 같이 그래프가 보일 것입니다 : 나는 응용 프로그램 내에서 맨 오른쪽 (가장 높은 하나)의 이미지를 사용하고

enter image description here

. 그러나 2 문제가 있습니다.

1) 막대가 거꾸로되어 있습니다. 그래서 그들은 빨간색으로 시작하여 노란색으로 올라갑니다.

2) 너무 큰 이미지를 사용하면 막대가 완전히 빨간색입니다. 너무 작은 이미지를 사용하면 반복되기 시작합니다. 올바른 크기의 이미지를 사용하면 작동하는 것 같습니다. 그러나 나는 같은 크기가 아닌 여러 그래프에 걸쳐이 이미지를 사용할 것입니다. 그래서 이미지를 적당한 크기로 만드는 것은 비효율적 인 것처럼 보입니다. 플롯마다 여러 개의 막대가 표시되므로 그래프 크기가 ​​변경되면 모든 이미지가 변경되어야 함을 의미합니다.

enter image description here

중요한 것은 I : 여기

CPTImage *image = [CPTImage imageForPNGFile:@"gradient-bar"]; 
image.tiled = YES; 
CPTFill *areaFill = [CPTFill fillWithImage:image]; 

CPTBarPlot *plot = [[CPTBarPlot alloc] init]; 
plot.fill = areaFill; 
plot.identifier = @"BIP"; 

은 바 이미지가 적당한 크기 일 때의 이미지입니다 : 여기

내가 막대를 만드는 데 사용하고있는 코드입니다 찾고있는 어떤 크기의 그래프에서 사용할 수있는 하나의 이미지를 가질 수 있습니다.

감사합니다.

=====

편집

나는 image.tiled을 설정 한 경우 = NO 나는 다음과 같은 그래프를 얻을 :

enter image description here

내가에 그래프를 싶습니다을 내 원래 게시물의 이미지가됩니다. 그래서 250 마크 주위에 그냥 노란색이어야합니다. 1000의 경우 노란색에서 빨간색까지 전체 색상 범위를 거쳐야합니다.

답변

0

막대가 원본 이미지보다 클 때 반복되는 이유는 바둑판 식으로 된 이미지를 사용하고 있습니다. tiled ~ NO을 설정하여 대신 이미지를 스트레치하여 막대를 채 웁니다. 나는 그것이 뒤집힌 이유를 모른다.

+0

안녕하세요, 에릭에 감사드립니다. 나는 바둑판 모양의 이미지를 no로 설정하려고 시도했지만 이것이 내가 찾고있는 결과를 얻지는 못합니다. 내 편집 된 게시물을 참조하십시오. 감사. – pls

+0

바둑판 모양을 원한다면 이미지의 높이가 가장 높을 때 높이 (스크린 포인트) 이상인지 확인하십시오. –

+0

그 방법을 확인해 주셔서 감사합니다. Core Plot에 대한 큰 성과에 감사드립니다. – pls