2016-11-14 2 views
0

현재 코어 플롯을 사용하는 어플리케이션과 그래프를 그리는 데 사용되는 특정 ScatterPlot 어플리케이션에 대해 작업 중입니다. 이 그래프는 연결된 블루투스 장치에서 얻은 값으로 그려 지므로 그래프가 동적으로 그려집니다. X 축에 시간 값이 있고 Y 축에 BLE 장치 값이있는 XY 그래프입니다.코어 플롯 - 라벨 "OL"로 동적으로 변경되는 그래프를 그리기 위해 OutOfRange를 추가하십시오.

이제는 그래프에 "OL"레이블이있는 범위를 벗어나는 값을 추가하는 것이고 BOOT는 Bluetooth 장치의 고정 된 상수 값이 아닙니다 (BLE로 생성 된 모델 개체에 더 많은 상태 세트가 있음) 우리가 범위를 벗어나는 값을 알아낼 수있는 정크 값을 가진 레이어).

예를 들어, 처음에 'OL'값을 얻으면 레이블 "OL"로 그래프 위에 0을 추가해야합니다. '-OL'레이블이 0 이하인 '-OL'. BLE에서 얻은 값은 배열에 계속 추가되고이 배열을 사용하여 그래프가 다시 그려집니다.

따라서 동작은 다음과 같이 예상됩니다. 배열에서 값 200을 얻었고 배열에 OL 값이있는 경우 OL 값을 200 이상으로 플롯해야하고 BLE의 다음 값이 300이되면 추가됩니다 OL은 200 이상이므로 이제 OL은 300 이상으로 플롯되어야합니다.

2 가지 방법을 시도해 보았지만 성공하지 못했습니다. 예상되는 요구 사항의

이미지 :

Image of the expected requirement

이 사용하는 핵심 플롯을 구현하기 위해 가능하면 도와 줄 사람이 필요합니다.

+0

OL 값에서 연결선을 그림과 같이 다른 색으로 나타내야합니까? 아니면 동일한 데이터 선으로 점을 연결 하시겠습니까? –

+0

예 에릭 기대는 이미지와 같습니다. –

+0

@EricSkroch 이것에 대한 모든 업데이트? –

답변

0

빨간 선에 대해 두 번째 산점도가 필요합니다. 주 플롯에서 유효한 범위를 벗어난 값에 대해 데이터 소스에서 nil을 반환하십시오. 이것은 라인에 간격을두고 다른 플롯으로 채워집니다.

두 번째 플롯의 경우 유효한 범위를 벗어난 데이터 인덱스를 제외한 모든 데이터 인덱스에서 nil을 반환하십시오. 그 포인트의 범위 제한치를 돌려줍니다. 라인을 주 플롯 라인에 연결하려면 범위를 벗어나는 값의 양쪽에있는 두 지점에 대해 정확한 범위 내 값을 반환해야합니다.

+0

우리는 값을 구별 할 수있는 2 가지 다른 산점도가 있지만 내 질문은 이미지에서와 같이 "Y"축에 레이블로 OL 문자열을 제공하는 것입니다. NSFormatter 하위 클래스를 만들고 stringForObject 및 stringForValue를 재정의하고 많은 웹 사이트에서 지정한대로 OL을 반환합니다. 그러나 문제는 내가 OL의 값이 formatter 클래스에 있는지 여부를 식별하는 방법입니다. 이 최대한 빨리 귀하의 의견을 알려 주실 수 있습니까? –

+0

사용자 정의 y 축 레이블 ('CPTAxisLabelingPolicyNone')을 사용하여 한계 값에 "OL"을 표시하십시오. 이 작업을 수행하는 데 사용자 정의 포맷터가 필요하지 않을 수도 있습니다. 사용자 지정 레이블을 만들 때 숫자 값을 일반적으로 서식을 지정하고 OL 값에 대해 "OL"문자열을 반환합니다. OL 값이 새 데이터를 기반으로 변경되면 틱 위치와 레이블을 새 값과 일치하도록 업데이트하고 플롯 데이터를 다시로드하여 새 OL 값을 기반으로 올바른 위치에 빨간색 세그먼트를 그립니다. –

+0

에릭에게 답변 해 주셔서 감사합니다. 나는 코어 플롯에 익숙하지 않습니다. 당신이 제공 한 더 많은 정보가 필요합니다. 나는 나 자신을 시험해 보았다. 그러나 성공하지 않고 googled했다. "해당 지점의 범위 한계 값을 반환하십시오.또한 라인을 주 플롯 라인에 연결하기 위해 범위를 벗어나는 값의 양측에있는 두 지점에 대해 올바른 범위 내 값을 반환해야합니다. "-이 방법을 구현할 수 있는지 알려주십시오. –

관련 문제