사용자 정의 레이블이 필요한 막대가있는 스택 막대 차트가 있습니다. 각 막대는 레이블 앞에 막대의 값을 표시해야합니다. 이를 지원하기 위해 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>
감사합니다!
현재까지는이 기능이 테스트되었으며 작동합니다. 정확하게 필요한 것. 감사! – GoldDragonTSU
@J_A_X 당신의 솔루션을보기가 정말 기뻤습니다 :)하지만 똑같은 시도를했지만 labelFunction을 무시하고 일반적인 툴팁을 표시했습니다. 다른 단계가 있습니까 (labelFunction을 만들고 각 BarSeries에서 labelFunction 속성을 설정했습니다)? – Zesty
@J_A_X 또한 "test"를 반환하려고 시도했지만 무시되었지만 여전히 BarChar에 대한 표준 툴팁을 표시합니다. – Zesty