2009-10-14 5 views
1

플렉스에서 바 차트를 사용하려고합니다. 내가 그것을 먹인 ArrayCollection의 순서에 따라 막대를 정렬하고 싶습니다. 즉 인덱스 0의 데이터는 맨 위에있는 첫 번째 막대 여야합니다. 그러나 Flex는 정확한 역순을 제공합니다. 즉 인덱스 0의 데이터는 하단의 마지막 막대가 아닙니다.플렉스 바 차트의 바의 역순 정렬

어떻게하면 ArrayCollection의 순서를 바꾸는 것 이외의 순서로 BarChart에 지시 할 수 있습니까? 감사!! 여기

내 스크립트 태그의 코드 블록을이다 :

[Bindable] 
private var optionsArray:ArrayCollection = new ArrayCollection([ 
     new VotingOption('Yes, it rocks!', 'yes', 5), 
     new VotingOption('Meh, it is okay!', 'ok', 10), 
     new VotingOption('No, it sucks!', 'no', 15) 
]); 

을 그리고 여기 내 막대 그래프 코드입니다 :

<mx:BarChart x="9.1" y="8" id="barchart1" width="563.0303" height="454.01514" maxBarWidth="30" 
    type="overlaid" dataProvider="{optionsArray}" showAllDataTips="true"> 

    <mx:verticalAxis> 
     <mx:CategoryAxis id="vertAxis" categoryField="optionSMSCode"/> 
    </mx:verticalAxis> 

    <mx:verticalAxisRenderers> 
     <mx:AxisRenderer axis="{vertAxis}" showLabels="false"/>  
    </mx:verticalAxisRenderers> 

    <mx:series> 
     <mx:BarSeries xField="optionResult" showDataEffect="morph"/> 
    </mx:series> 
</mx:BarChart> 
+0

임시 패치로 .. 왜 그냥 배열 정렬을 바꾸지 않으시겠습니까? – ethyreal

+0

이 그 원래 순서에 의존하기 때문에 이 차트는 역 순서가 필요한 유일한 것입니다. 'data.source.reverse()'를 호출하면 다른 것들을 망쳐 놓습니다. 임시 패치로서, 새로운 배열을 생성하고 그것을 역 데이터 배열에 할당합니다. – tomato

답변

3

당신이지고 출력이 어떻게 작동하는지 플렉스 BarCharts에 따라 정확하고 이것은 당신이 기대해야만하는 결과이기도합니다. 원점은 bottom_left에 있으며, 이러한 객체/목록은 bottom_left에서 시작하여 위쪽과 오른쪽으로 바깥쪽으로 계속됩니다.
http://livedocs.adobe.com/flex/3/html/help.html?content=charts_types_03.html

나는 그것을 역으로 해석하는 방법을 시각적으로 이해합니다. 그럼 누군가가 당신에게 그 순서대로 dataProvider/ArrayCollection을 주었지만 역순으로 시각화하고 싶다고합시다. 나도 1) 것

http://livedocs.adobe.com/flex/3/langref/Array.html

2)
가 AxisRenderer.labelFunction 속성을 사용 세로축 라벨 역방향

//public var data:ArrayCollection; 
data.source.reverse(); 
.
Flex: Inverting LinearAxis values

+0

답변 해 주셔서 감사합니다. 원점이 bottom_left에 있음을 지적했다는 것은 통찰력이 있습니다. 나는 원점을 top_left로 바꾸려고 시도했다. 수평 원점을 위에 놓음으로써 순서가 바뀔 것이라고 기대했다. 그러나 그것은 여전히 ​​효과가 없었습니다. 다른 방법이 있습니까? 원본 주문에 의존하는 다른 것들이 있기 때문에 데이터 원본 순서를 바꾸는 것이 나에게 효과적이지 않습니다. 그러나 thx 함수를 지적했다. 이제 새로운 반전 된 배열을 반환하도록 해킹 할 수 있습니다. 레이블을 뒤집을 때 직선 축 (* -1)을 사용했을 때와 마찬가지로 범주 형 축을 뒤집을 좋은 방법을 생각할 수 없었습니다. – tomato

1

해결책은 간단합니다. 동일한 객체를 사용하여 새 배열 또는 배열 컬렉션을 만들거나 (차트의 dataProvider 속성을 재정의해야 할 수도 있음) 정렬합니다.

관련 문제