2009-04-28 2 views
2

동적으로 생성 된 차트가 있고 스크립트에 가로 및 세로 축을 추가해야합니다. 동적으로 차트 유형을 변경하고, 삭제하고 새로운 차트를 만들기 때문에 차트를 MXML에 넣을 수 없습니다. 따라서 chartBase의 인스턴스 인 차트를 만들 때 사용하는 변수에는 horizontalAxis 또는 verticalAxis가 없습니다. 존재하지 않는 경우 어떻게 할당합니까? 다른 유형을 사용해야합니까? 사용하고자하는 그래프는 선, 막대 및 HLOC 및/또는 촛대입니다.플렉스 : 차트에 가로 축을 추가하는 방법은 무엇입니까?

답변

1

차트를 적절한 유형으로 인스턴스화하면 더 나은 결과를 얻을 수있을 것이라고 생각합니다.

예를 들어, 구성 요소에 나는 MXML의 골격 선 차트 설정을

...

<mx:LineChart id="lineChart" dataProvider="{chartData}" dataTipFunction="dataTipFunction" 
    width="100%" 
    height="100%" 
    showDataTips="true" 
    /> 

...하지만 당신은 변수로 생성하고 컨테이너에 추가 할 수 있습니다. 그리고 내가 그들을 내가 원하는 유형을 결정하고 만들어 적용 축, 여기에 도움이 나는 수평 축에 사용하는 몇 가지 코드 ...

// Setup new horizontal axis. 
switch (hAxisFieldsComboBox.selectedItem.dataType) 
{ 
    case "Date": 
     var hDtAxis:DateTimeAxis = new DateTimeAxis(); 
     hDtAxis.title = hAxisFieldsComboBox.selectedItem.label; 
     hDtAxis.dataUnits = "days"; 
     hDtAxis.dataInterval = 1; 
     hDtAxis.parseFunction = dateParser; 
     lineChart.horizontalAxis = hDtAxis; 
     break; 
    case "Time": 
     var hTAxis:DateTimeAxis = new DateTimeAxis(); 
     hTAxis.title = hAxisFieldsComboBox.selectedItem.label; 
     hTAxis.dataInterval = 1; 
     hTAxis.parseFunction = timeParser; 
     lineChart.horizontalAxis = hTAxis; 
     break; 
    case "Number": 
     var hLAxis:LinearAxis = new LinearAxis(); 
     hLAxis.title = hAxisFieldsComboBox.selectedItem.label; 
     hLAxis.interval = 1; 
     hLAxis.minimum = 0; 
     lineChart.horizontalAxis = hLAxis; 
     break; 
    default: 
     var hCatAxis:CategoryAxis = new CategoryAxis(); 
     hCatAxis.title = hAxisFieldsComboBox.selectedItem.label; 
     hCatAxis.dataProvider = schemaUtil.aggregateAndSortCasesAC(chartData, vAxisFieldsComboBox.selectedItem.data, [hAxisFieldsComboBox.selectedItem.data]); 
     hCatAxis.categoryField = hAxisFieldsComboBox.selectedItem.data; 
     lineChart.horizontalAxis = hCatAxis; 
} 

희망입니다.