2011-05-10 2 views
0

사용자 정의 레이블이 필요한 막대가있는 스택 막대 차트가 있습니다. 각 막대는 레이블 앞에 막대의 값을 표시해야합니다. 이를 지원하기 위해 BarChart에서 다양한 BarSeries에 대한 사용자 정의 labelFunction을 작성했습니다 (아래 참조).Flex BarChart Stack 된 BarSeries labelFunction - 막대 개수 대 누적 합

이 함수는 성공적으로 레이블을 렌더링하지만 누적 막대의 경우 레이블 값이 원하는 것을 표시하지 않습니다. 막대의 값을 표시하는 대신 스택의 막대의 합계를 표시합니다. 예를 들어 BarSet에 값 3, 4 및 5가있는 막대가 세 개 있으면 레이블이 "3", "4"및 "5"가 아닌 "3", "7"및 "12" ".

this example에서 각 개별 BarSeries에 대해 별도의 labelFunction을 만들고 특정 속성 (예 : data.item. @ fooCount)에 액세스하여 원하는 결과를 얻을 수있는 것 같습니다. 그러나 가능한 한 일반적인 기능 하나만 갖고 싶습니다. xNumber 대신에 액세스 할 수있는 또 다른 속성이 있는데, 막대의 특정 값이 아닌 합계를 가져옵니다.

기본 레이블 동작 (즉, labelFunction을 설정하지 않음)은 합계가 아닌 개별 값을 표시합니다. 따라서 가능한 한 많은 돈을 들이지 않고도 가능할 것으로 예상합니다. :)

내 정의의 labelFunction :

private function setCustomLabel(item:ChartItem, series:Series):String 
    { 

    var data:BarSeriesItem = BarSeriesItem(item); 
    var currentSeries:BarSeries = BarSeries(series); 

    return currentSeries.displayName + ": " + data.xNumber; 

    } 

막대 그래프 코드의 일부의 조각 :

<mx:BarChart id="myChart" showDataTips="true" 
       height="180" width="100%"> 

     ... 

     <mx:BarSet type="stacked"> 
     <mx:BarSeries displayName="Foo Count" xField="fooCount" 
         labelFunction="setCustomLabel" /> 
     <mx:BarSeries displayName="Bar Count" xField="barCount" 
         labelFunction="setCustomLabel" /> 
     </mx:BarSet> 

    </mx:series> 
    </mx:BarChart> 

감사합니다!

답변

2

나는 당신이하고 싶은 것이 dataProvider를 사용하는 것이라고 믿습니다. 지금, 당신의 xNumber는 스택 시리즈 수, 그리고 데이터가오고 너무

, 나는 이런 식으로 뭔가 시도 할 것 같습니다.이 테스트되지

private function setCustomLabel(item:ChartItem, series:Series):String 
    { 

    var data:BarSeriesItem = BarSeriesItem(item); 
    var currentSeries:BarSeries = BarSeries(series); 

    return currentSeries.displayName + ": " + data.item[currentSeries.xField]; 

    } 

을,하지만 난 당신이 얻을 생각 아이템이 표시하는 것을 사용하는 대신 원시 데이터를 가져 오는 아이디어.

+0

현재까지는이 기능이 테스트되었으며 작동합니다. 정확하게 필요한 것. 감사! – GoldDragonTSU

+0

@J_A_X 당신의 솔루션을보기가 정말 기뻤습니다 :)하지만 똑같은 시도를했지만 labelFunction을 무시하고 일반적인 툴팁을 표시했습니다. 다른 단계가 있습니까 (labelFunction을 만들고 각 BarSeries에서 labelFunction 속성을 설정했습니다)? – Zesty

+0

@J_A_X 또한 "test"를 반환하려고 시도했지만 무시되었지만 여전히 BarChar에 대한 표준 툴팁을 표시합니다. – Zesty

관련 문제