There is no direct way to do this, but there is a crooked way. In the dataFunction of the series, negate all the values of the field that is projected on the y-axis. And then in the labelFunction of the verticalAxis, negate it again.
<?xml version="1.0"?>
<!-- charts/BasicLine.mxml -->
<mx:Script><![CDATA[
import mx.charts.chartClasses.Series;
import mx.charts.chartClasses.IAxis;
import mx.collections.ArrayCollection;
[Bindable]
public var expenses:ArrayCollection = new ArrayCollection([
{Month:"Jan", Profit:2000, Expenses:1500, Amount:450},
{Month:"Feb", Profit:1000, Expenses:200, Amount:600},
{Month:"Mar", Profit:1500, Expenses:500, Amount:300}
]);
private function diffLabel(item:Object, prevValue:Object, axis:IAxis):String{
var str:String = String(Number(item)*-1);
return str;
}
private function dataFunc(series:Series, item:Object, fieldName:String):Object {
if (item.Expenses>0)
item.Expenses = item.Expenses*-1;
return item;
}
]]></mx:Script>
<mx:Panel title="Line Chart">
<mx:LineChart id="myChart"
dataProvider="{expenses}"
showDataTips="true"
>
<mx:horizontalAxis>
<mx:CategoryAxis
dataProvider="{expenses}"
categoryField="Month"
/>
</mx:horizontalAxis>
<mx:verticalAxis>
<mx:LinearAxis labelFunction="diffLabel"/>
</mx:verticalAxis>
<mx:series>
<mx:LineSeries dataFunction="dataFunc"
yField="Profit"
displayName="Profit"
/>
<mx:LineSeries
yField="Expenses"
displayName="Expenses"
/>
</mx:series>
</mx:LineChart>
<mx:Legend dataProvider="{myChart}"/>
</mx:Panel>
</mx:Application>