【发布时间】:2009-04-28 23:01:46
【问题描述】:
我有一个动态创建的图表,我需要在脚本中添加水平轴和垂直轴。我无法将图表放入 MXML,因为我正在动态更改图表类型、删除和创建新图表。因此,我用来创建图表的变量(chartBase 的一个实例)既没有水平轴也没有垂直轴。如果它们不存在,我如何分配给它们?我应该使用不同的类型吗?我要使用的图表是线形、条形和 HLOC 和/或烛台。
【问题讨论】:
标签: apache-flex charts actionscript
我有一个动态创建的图表,我需要在脚本中添加水平轴和垂直轴。我无法将图表放入 MXML,因为我正在动态更改图表类型、删除和创建新图表。因此,我用来创建图表的变量(chartBase 的一个实例)既没有水平轴也没有垂直轴。如果它们不存在,我如何分配给它们?我应该使用不同的类型吗?我要使用的图表是线形、条形和 HLOC 和/或烛台。
【问题讨论】:
标签: apache-flex charts actionscript
我认为通过将图表实例化为适当的类型会获得更好的结果。
例如,在一个组件中,我在 mxml 中有一个骨架 lineChart 设置...
<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;
}
希望对您有所帮助。
【讨论】: