2012-07-23 3 views
1

나는 Androidplot 라이브러리를 사용하여 Barchart에 무언가를 표시합니다. 내 값의 범위는 -40 ~ +40입니다.Androidplot이있는 부정적인 Barchart

막대를 음수쪽으로 어떻게 그릴 수 있습니까? 값이 네가 티브의 positiv 인 경우 나는 가운데에있는 y 축에 0을 중심에 놓고 싶습니다. 막대는 자라야합니다. 내 바가 아래쪽에서 위쪽으로 자라고 있습니다. 다음과 같이 표시되어야합니다. enter image description here

+1

나는 안드로이드 음모로 기본 막대 그래프를 알아 내려고 노력하고 있는데, 이것을 수행하기위한 기본 샘플 코드가 있습니까? –

답변

0

위대한 질문입니다. 나는 하나의 일련의 값을 가진 현재 버전의 AndroidPlot (0.6.0)을 사용하여 그렇게 할 수있는 방법이 없다고 생각한다. 프로젝트에서 해결 방법을 만들었습니다. 나는 그것이 완벽하지는 않다는 것을 안다. 그러나 그것은 작동한다 : 겹치는 두 개의 시리즈를 만든다. 하나는 녹색이고 다른 하나는 배경색이다. 그릴 currentValue가 있다고 가정하십시오.

if (currentValue>=0) { 
    greenRes[i] = Float.valueOf(currentValue); 
    coverRes[i] = Float.valueOf(0); 
} 
else { 
    greenRes[i] = Float.valueOf(0); 
    coverRes[i] = Float.valueOf(currentValue); 
} 

이렇게하면 0 축에서 시작하여 위아래로가는 녹색 막대가 나타납니다. 나를 위해 작동

+0

사용 방법에 관한 코드 스 니펫을 제공해 주시겠습니까? – bgplaya

1

:

plot.centerOnRangeOrigin (0);

plot.setRangeLowerBoundary (0, BoundaryMode.AUTO);

여기서 plot은 XYPlot의 인스턴스입니다.

1

최근 안드로이드 지원에 부정적인 막대 지원이 추가되었습니다. 0.6.2; 그것을 얻으려면 latest development version을 사용해야합니다 (매우 안정적입니다).

올바른 버전의 Androidplot을 사용하면 마리아 레이나의 제안을 사용하여 음수 값을 표시 할 수 있습니다. 여기에 내가 아래의 스크린 샷을하고 있어요 방법은 다음과 같습니다

plot.setUserRangeOrigin(0); 
plot.setRangeBoundaries(0, BoundaryMode.AUTO, 0,BoundaryMode.AUTO); 

enter image description here

참고 : 2 개 이상의 일련의 오버레이 모드를 사용하여 음의 막대가있는 경우 버그가 현재로서는, 음수 바의 오버레이 순서가 반대로 바 그룹의 더 작은 음수 값이 큰 음수 값에 의해 가려집니다. 당신의 목표가 단순히 위의 이미지를 재현하는 것이라면 괜찮을 것입니다.

+0

고마워요. 정말이 기능이 필요했고 0.6.1을 사용할 때 왜 작동하지 않는지 알지 못했습니다. – Kalem

+0

약간의 정밀도 : BoundaryMode.AUTO는 필수 항목이 아닙니다. 'plot.setRangeBoundaries (min, max, BoundaryMode.FIXED);'와 같은 경계를 고쳐야 할 때 BoundaryMode.FIXED를 사용할 수도 있습니다. 여기서 min은 음수 값이고 이것은 여전히 ​​작동합니다. – Kalem

+0

@Nick은 더 이상 작동하지 않게하기 위해 최근 jar 파일에서 변경된 내용 이었습니까? 나는 최신 AndroidPlot 0.6.2 (androidplot-core-0.6.2-SNAPSHOT)를 설치했고 centerOnRangeOrigin을 예상대로 작동시키지 못했습니다. centerOnDomainOrigin이 예상대로 작동합니다. 어떤 아이디어? – buczek