2009-04-28 7 views
2

私は動的に作成されたグラフを持っており、スクリプトに水平軸と垂直軸を追加する必要があります。動的にグラフの種類を変更したり、新しいグラフを削除したり作成したりするため、グラフをMXMLに入れることはできません。したがって、chartBaseのインスタンスであるグラフを作成するために使用する変数には、horizo​​ntalAxisまたは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; 
} 

お役に立てば幸いです。

関連する問題